6.Jenkins
Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
Jenkins는 오픈 소스 서버 런타임으로, 소프트웨어 배포, 빌드, 테스트 등과 관련된 거의 대부분의 작업들을 자동화할 때 사용됨
Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.
젠킨스는 로컬 환경에 직접 설치하거나 Docker를 통해 설치할 수 있음 Jenkins는 Java 언어로 개발되었기 때문에 JRE가 설치된 환경에서 동작함
2. Jenkins를 통해 얻을 수 있는 효용
Jenkins는 기본적으로 이러한 사이클과 관련하여 일부 사이클(코드베이스 통합, 배포 자동화) 내에서 반복적으로 수행해야할 작업들을 자동화(Automation)할 수 있도록 기능을 제공함
3. Jenkins의 특징
3-1. Java로 개발되었기 때문에 JRE 기반으로 동작
3-2. 배포, 빌드 등과 같은 작업(Task)들을 자동화하기 위한 다양한 플러그인(Plug-in) 제공
Plug-in 이란 각각의 작업들을 자동화하기 위해 개발된 모듈이라고 볼 수 있음
특정 작업을 자동화하기 위해 수행되어야 하는 동작 및 코드를 추상화시킨 형태로, 원하는 플러그인을 찾아서 편하게 활용 가능 플러그인 저장소
용도에 맞는 플러그인들을 찾아 조합하여 자신만의 자동화(Pipeline)를 구성할 수 있음
3-3. Pipeline
Pipeline이란 Plug-in들을 자동화하길 원하는 순서에 맞게 조합하여 구성된 전체 프로세스라고 볼 수 있음
따라서 하나의 파이프라인은 보통 최소 2개 이상의 플러그인들로 구성됨
3-3-1. 빌드와 테스트, 배포를 자동화하기 위한 파이프라인 구성 시나리오
Pipeline 1
플러그인 1. Git 저장소에서 특정 프로젝트를 pull/clone
↓
플러그인 2. 프로젝트 빌드
↓
플러그인 3. 프로젝트 배포