Jenkins - Pipeline
페이지 정보
본문
Jenkins Pipeline 개요
이 게시글에서는 Jenkins Pipeline 개요에 대한 문서를 살펴보고, 예시만 안내드리는 글입니다.
1. Jenkins Pipeline이란?
Jenkins Pipeline(이하 "파이프라인")은 Jenkins에서 CI/CD 환경을 구현할 수 있도록 도와주는 강력한 플러그인입니다. 파이프라인을 통해 소프트웨어 개발 프로세스에서 코드의 빌드, 테스트, 배포 단계를 자동화하여 지속적인 소프트웨어 전달을 가능하게 합니다.
파이프라인을 사용하면 전체 소프트웨어 개발 주기를 효율적으로 관리할 수 있습니다. 코드가 소스 컨트롤에서 사용자에게 전달되기까지의 과정을 파이프라인이 자동으로 처리합니다. 이는 코드 변경 사항이 각 단계별 빌드, 테스트, 배포 단계를 거치며 최종적으로 사용자에게 안정적으로 제공될 수 있도록 보장합니다.
2. Jenkinsfile로 파이프라인 정의하기
파이프라인 정의는 주로 Jenkinsfile이라는 파일에 작성하여 소스 코드 관리(SCM) 시스템에 함께 저장합니다. 이를 통해 코드 변경 시 파이프라인도 관리되고, 버전 관리가 가능합니다. 또한 각 프로젝트 구성원들이 파이프라인 코드를 쉽게 확인하고 수정할 수 있어 협업에 용이합니다.
예시 Jenkinsfile 정의는 다음과 같습니다:
```groovy
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test') {
steps {
sh 'make test'
junit 'reports/**/*.xml'
}
}
stage('Deploy') {
steps {
sh 'make deploy'
}
}
}
}
```
이 명령을 실행할 시 'make'로 빌드를 수행하고, 'make test'로 테스트를 실행하며, 'make deploy'로 배포를 수행하는 파이프라인을 정의할 수 있습니다.
3. 선언형(Declarative)과 스크립트형(Scripted) 파이프라인
Jenkins 파이프라인은 두 가지 방식으로 작성할 수 있습니다: 선언형과 스크립트형. 선언형 파이프라인은 비교적 단순하고 직관적이며, 주로 초보자나 기본 파이프라인 설정에 적합합니다. 반면 스크립트형 파이프라인은 Groovy 기반의 자유도가 높은 스크립트를 작성할 수 있어, 복잡한 요구 사항을 충족하기에 유리합니다.
각 파이프라인의 기본 예시는 다음과 같습니다.
```groovy
// 선언형 파이프라인
pipeline {
agent any
stages {
stage('Build') { steps { sh 'make' } }
stage('Test') { steps { sh 'make test' } }
stage('Deploy') { steps { sh 'make deploy' } }
}
}
```
```groovy
// 스크립트형 파이프라인
node {
stage('Build') { sh 'make' }
stage('Test') { sh 'make test' }
stage('Deploy') { sh 'make deploy' }
}
```
4. 파이프라인 구성 요소
파이프라인의 구성 요소는 크게 네 가지로 나눌 수 있습니다: 파이프라인 자체, 노드, 스테이지, 스텝입니다.
4.1 파이프라인
파이프라인은 전체 빌드 프로세스를 정의하는 코드 블록입니다. 여기서 각 단계가 설정되고, 이를 통해 애플리케이션을 빌드하고 테스트하며 배포하는 전 과정을 기술할 수 있습니다.
4.2 노드(Node)
노드는 Jenkins 환경 내에서 파이프라인을 실행할 수 있는 머신입니다. 스크립트형 파이프라인에서는 주로 node 블록 내에서 작업이 이루어집니다.
4.3 스테이지(Stage)
스테이지는 파이프라인 내에서 개별적인 작업 단계를 구분짓는 블록입니다. 빌드, 테스트, 배포 등의 각 단계는 스테이지로 구분하여 파이프라인의 진행 상태를 직관적으로 파악할 수 있습니다.
4.4 스텝(Step)
스텝은 파이프라인이 수행할 단일 작업을 의미합니다. 예를 들어, sh 'make'라는 스텝은 'make' 명령을 실행하라는 지시를 의미합니다. 이는 특정 시점에 수행되어야 할 작업을 Jenkins에 전달합니다.
5. 파이프라인 활용 예시
아래 예시는 Jenkinsfile을 이용한 간단한 선언형 파이프라인 설정입니다.
```groovy
pipeline {
agent any
options {
skipStagesAfterUnstable()
}
stages {
stage('Build') { steps { sh 'make' } }
stage('Test') {
steps {
sh 'make check'
junit 'reports/**/*.xml'
}
}
stage('Deploy') { steps { sh 'make publish' } }
}
}
```
위의 예제는 make 명령을 사용하여 빌드, 테스트, 배포를 자동화하는 파이프라인을 구성합니다. 'skipStagesAfterUnstable' 옵션을 사용하여 특정 스테이지가 실패할 경우 이후 스테이지는 건너뛰게 설정할 수 있습니다.
6. 결론
Jenkins 파이프라인은 자동화 작업을 코드로 작성하여, 버전 관리와 협업이 용이한 환경을 제공합니다. 이 게시글에서는 파이프라인의 기본 구성 요소 및 예시를 통해 시니어 OS 엔지니어가 파이프라인의 동작 원리를 쉽게 이해할 수 있도록 설명했습니다. Jenkinsfile을 통해 파이프라인을 정의함으로써, 소프트웨어 개발 프로세스를 효율적으로 자동화할 수 있는 강력한 기능을 갖추게 될 것입니다.
관련링크
- 다음글Jenkins 설치하기 24.01.14
댓글목록
등록된 댓글이 없습니다.