Travis CI 를 이용해서 Github 에 소스에 변경사항이 생기면 Buiild & Test 를 통해서 결과를 slack 에 알림을 주는 방법을 설명합니다. 많은 회사에서 이미 사용중인 Jenkins를 Docker로 이용해서 Android CI/CD를 하는 방법을 소개하고자 합니다.
15. CD(Continuous Delivery or Continuous Deploy) 란?
짧은 주기로 소프트웨어를 개발하는 소프트웨어 공학적 접근의 하나로, 소프트웨어가 언제든지 신뢰
가능한 수준으로 출시될 수 있도록 보증하기 위한 것이다.[1] 소프트웨어를 더 빠르게, 더 주기적으로
빌드하고 테스트하고 출시하는 것을 목표로 한다. 이러한 접근은 더 많은 증분 업데이트를 업무
애플리케이션에 적용할 수 있게 함으로써 변경사항의 배포에 대한 비용, 시간, 위험을 줄일 수 있게 한다.
23. Travis CI란?
Travis CI는 Github에서 진행되는 오픈소스 프로젝트를 위한
지속적인 통합(Continuous Integration) 서비스이다.
Private repository는 유료로 일정 금액을 지불하고 사용할 수 있다.
24. • 관리가 필요 없는 무료 클라우드 기반 호스팅 제공 .
• Linux & Mac OS X에서 동시에 테스트 할 수 있음
• Android, C, C#, C ++, Clojure, Crystal, D, Dart, Erlang, Elixir,
F#, Go, Groovy, Haxe, Java, JavaScript(Node.js), Julia,
Objective-C , Perl, Perl6, PHP, Python, R, Ruby, Scala etc
Travis CI Features
25. • 손쉬운 프로젝트 설정 및 서비스 연동
- Github와 seamless 한 통합
• 오픈 소스 프로젝트 사용시 무료로 사용 가능
• 전용 CI/CD를 서버가 필요하지 않음.
• 모든 Job이 독립적으로 동작.
• 빌드 메트릭스 제공
Travis CI 장점.
26. • 제한된 옵션 제공 ( Site GUI에 할 수 있는게 제한되었음 )
• 좀 느린 속도 ( 추가적인 비용을 들여도 제한된 성능)
• Private 저장소는 유료 Plan ( Enterprise )
Travis CI 단점.
27. • Build Result to slack channel & e-mail
• Deploy to Github Release
• Upload apk file to slack channel using Slack bot
43. • 다양한 시스템에서 사용 가능
ex) Windows, OSX, Unix etc
• Update 통해서 많은 플러그인 지원
• 개발자는 플러그인 개발을 통해서 확장 기능을 추가 가능.
• 대부분의 통합 환경 지원
• 다양한 작업 모드 포함
• 다양한 조건의 빌드를 시작할 수 있습니다.
• Kubernetes, Docker 및 기타 여러 프로그램과 호환 가능
Jenkins Features
44. • 무료 사용
• 사용자 정의 옵션
• 방대한 양의 플러그인
• 다양한 적용사례 및 풍부한 레퍼런스
• Remote access API 제공.
Jenkins 장점
45. • 무료로 사용하지만 별도의 서버가 필요
( 단적인 예로는 서버 비용이 발생 )
• 시스템 구성 및 사용자 정의 시간이 오래 걸릴 수 있음.
Jenkins 단점