지속적 통합의 장점
빌드/테스트의 개념
빌드란 프로그램의 소스 코드를 독립적인 아티팩트(artifact)로 변환하는 과정.
소스 코드에서 실행 가능한 프로그램 또는 라이브러리
테스트는 소프트웨어의 동작을 확인하고 검증하는 활동을 말합니다. 테스트의 목적은 소프트웨어가 사용자의 요구 사항을 충족시키며 예상대로 동작하는지 확인하는 것
Jenkins
Jenkins는 오픈소스 자동화 서버입니다. 빌드, 테스트, 배포와 같은 소프트웨어 개발의 일부분을 자동화하는 데 도움을 주며, 지속적 통합과 지속적 배포를 돕습니다.
특징
설치형 별도의 서버가 필요
다양한 플러그인을 활용 가능
쿠버네티스, Docker 등과 호환가능
다양한 운영체제에서 사용이 가능
Travis CI
Travis CI는 호스트형(hosted) 배포 자동화 서비스로, GitHub 및 Bitbucket 등에서 호스팅되는 소프트웨어 프로젝트를 빌드하고 테스트하는 데 사용됩니다.
특징
클라우드 서비스(SasS) 형태로 사용가능
Travis 자체에서 호스팅을 해주기 때문에 관리적인 측면에서 편리함
Clojure, Erlang, Groovy Haskell, Java, JavaScirpt, Node.js, Ruby 등의 다양한 언어를 지원 함
Github Action
Github Action는 GitHub 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 툴
특징
GitHub 마켓 플레이스를 통해 다른사람이 공유한 workflow를 찾거나 직접 만든것을 공유 가능
공개 저장소를 무료로 사용할 수 있으며, 비공개 저장소 같은 경우 무료 사용량 이후에 요금이 부과