파이프라인(Pipeline)
젠킨스의 파이프라인은 지속적인 통합(CI, Continuous Integration)과 배포(CD, Continuous Delivery)를 지원하기 위한 플러그인의 집합입니다. 파이프라인은 스크립트로 구현되며 젠킨스에서 지원하는 도메인 특화 언어(DSL, Domain-Specific Languages)로 작성합니다. 스크립트는 젠킨스 웹 UI를 사용하는 것보다 "코드"에 가까운 모델로써 CI/CD의 세부적인 내용까지 컨트롤 할 수 있습니다.
사전 요구 사항
젠킨스 파이프라인을 사용하려면 다음 조건을 만족해야 합니다.
- Jenkins 2.x 이상(1.642.3 이전 버전에서도 동작하지만 권장하지 않습니다)
- 파이프라인 플러그인(젠킨스를 권장 설치로 진행 시 디폴트로 설치됩니다)
파이프라인의 종류
젠킨스의 파이프라인은 Declarative and Scripted Pipeline으로 구분 할 수 있습니다.
- Declarative Pipeline
최신 버전에 해당하는 파이프라인입니다. 기존 Scripted Pipeline에 비해 다양한 파이프라인 구문을 제공하며 가독성이 좋습니다. 젠킨스에서는 최신 버전에 해당하는 Declarative Pipeline 사용을 권장하고 있습니다. - Scripted Pipeline
이전 버전에 해당하는 파이프라인입니다. 제한된 형식의 Groovy 구문으로 작성됩니다.
파이프라인 생성 방법
젠킨스에서 파이프라인을 생성하고 관리하는 방법은 다음과 같습니다.
- 웹 UI
젠킨스 웹 UI의 전통적인 방법을 사용하여 파이프라인을 생성합니다. - Blue Ocean
Blue Ocean UI를 사용하여 파이프라인의 Jenkinsfile을 작성하고 커밋 할 수 있습니다. - SCM
파이프라인의 Jenkinsfile을 직접 작성하고 프로젝트에서 사용중인 SCM 툴에 커밋합니다.
웹 UI로 파이프라인 만들기
젠킨스에서는 Jenkinsfile을 작성하는 것을 권장합니다. 하지만 웹 UI 사용이 더 직관적이고 쉽기 때문에 파이프라인을 이제 막 입문하는 경우라면 웹 UI 먼저 학습하는 것이 좋은 방법일 수 있습니다.
우선 젠킨스 웹에 접속 및 로그인하고 대시보드 > 새로운 Item에 들어갑니다.
이어서 Enter an item name에 파이프라인 이름을 입력합니다. 그리고 하단 Item 항목 중 Pipeline을 선택하고 OK 버튼을 클릭하면 파이프라인 Item이 생성됩니다.
파이프라인 Item이 생성되면 파이프라인의 구체적인 내용에 대해서 정의 할 수 있습니다. 페이지 상단을 보면 General, Build Triggers, Advanced Project Options, Pipeline으로 총 4개 섹션으로 구성됩니다.
모든 섹션을 건너 뛰고 Pipeline 섹션으로 바로 이동합니다. 섹션에서 Definition > Pipeline script를 선택합니다(디폴트).
Script text area에 다음 파이프라인 스크립트를 입력합니다. 스크립트가 실행되면 echo 구문에 의해서 'Hello World'가 출력됨을 예상 할 수 있습니다.
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
최종적으로 Save 버튼을 클릭하여 파이프라인 스크립트를 저장합니다.
화면이 이동하면 Dashboard > [ 파이프라인 이름 ] > Build Now을 클릭하여 파이프라인 스크립트를 실행 할 수 있습니다.
빌드가 시작되면 하단부의 Build History 등에서 빌드 진행 상황을 확인 할 수 있습니다.
Build History의 #1을 클릭하여 첫 번째 빌드 진행 상황을 확인합니다. Dashboard > [ 파이프라인 이름 ] > #1 > Console Output으로 입장합니다.
파이프라인 스크립트가 정상적으로 실행되었다면 Finished: SUCCESS가 출력됩니다. 또한 우리가 작성했던 스크립트 내용대로 콘솔 출력문 중간쯤에 'Hello World' 역시 확인 할 수 있습니다.
'Build > Jenkins' 카테고리의 다른 글
[Infrastructure/Jenkins] 플러그인(Plugin) 설치 (0) | 2022.04.12 |
---|---|
[Infrastructure/Jenkins] Scripted 파이프라인 기본 구문 (0) | 2022.04.12 |
[Infrastructure/Jenkins] MacOS에서 도커(Docker)를 사용한 젠킨스 설치 (0) | 2022.04.06 |
[Infrastructure/Jenkins] 젠킨스(Jenkins)란? (0) | 2022.04.06 |
[Infrastructure/Jenkins] 파이프라인에서 "CreateProcess error=2, 지정된 파일을 찾을 수 없습니다" 오류 (0) | 2022.04.04 |