본문 바로가기

DevOps/CI & CD

Jenkins Pipeline 개요 및 파이프라인 스크립트 예제

728x90

 

 

젠킨스 파이프라인 시작하기

젠킨스파이프라인은 CD(Continuous delivery)를 하기에 적합하다.

Pipeline DSL[각주:1]을 통해 다양한(간단한 파이프라인 부터 복잡한 파이프라인 까지) 파이프라인을 "코드로" 개발할 수 있다.

 

사전작업

젠킨스 파이프라인을 사용하려면 아래의 준비물이 필요함

파이프라인 정의하기

젠킨스 파이프라인은 groovy syntex로 제한적으로 스크립트 언어로 수행가능하다. 그러므로 groovy 언어를 학습하는 것은 파이프라인을 구성하는데 유용하다.

 

파이프라인은 아래와 같은 여러방식으로 구성가능하다.

  • 블루오션 : 파이프라인을 시각화시켜서 파이프 라인 구성을 간편하게 도와준다.
  • 클래식UI : 젠킨스의 기본 UI의 파이프라인 script(직접 입력)
  • SCM : git등으로 파이프라인 script를 관리 가능

상기 3개의 방식 모두 script를 사용한다는 점은 동일하다.

 

파이프라인 스크립트 예제

pipeline {
    agent any 
    stages {
        stage('Stage 1') {
            steps {
                echo 'Hello world!' 
            }
        }
    }
}
 
  1. pipeline : 젠킨스 파이프라인 플러그인을 호출하기 위한 필수 외부 블록
  2. agent : 파이프라인을 실행하고 싶은 위치 정의
    any : 파이프라인이나 스테이지를 실행하기 위해 사용가능한 어느 agent도 사용 할 수 있음 정의 
  3. echo : 간단한 console output 을 찍을 수 있다.
  4. stages : stage의 모음
  5. steps : 실제 작업 수행하는 블록

 

파이프라인 스크립트 예제2

  • post : 파이프라인 실행 또는 스테이지 끝에 실행될 동작을 정의
    (always, changed, failure, success, unstable, aborted)
pipeline {
    agent any

    stages {
        stage('build') {
            steps {
                sh 'build check'
            }
        }
    }

    post {
        always {
            junit '**/target/*.xml'
        }
        failure {
            mail to: team@gmail.com, subject: 'Pipeline fail email'
        }
    }
}​
 
ex. 상기 젠킨스 파이프라인은 build 스테이지 다음에 항상 Junit을 실행하지만 만약 build가 실패할 경우에는 email만 보냄.

 

 

  1. 도메인 특화 언어(Domain-specific language)는 특정한 도메인을 적용하는데 특화된 컴퓨터 언어이다. 이는 어느 도메인에서나 적용 가능한 범용 언어(General-purpose language)와는 반대되는 개념이다. 젠킨스 파이프라인에서는 groovy 언어를 사용한다. [본문으로]
728x90