젠킨스 파이프라인 시작하기
젠킨스파이프라인은 CD(Continuous delivery)를 하기에 적합하다.
Pipeline DSL을 통해 다양한(간단한 파이프라인 부터 복잡한 파이프라인 까지) 파이프라인을 "코드로" 개발할 수 있다. 1
사전작업
젠킨스 파이프라인을 사용하려면 아래의 준비물이 필요함
- Jenkins 2.x or later
- Pipeline plugin(https://plugins.jenkins.io/workflow-aggregator)
파이프라인을 설치하고 관리하는 방법 보러가기 -> 젠킨스 파이프라인 설치 및 관리
파이프라인 정의하기
젠킨스 파이프라인은 groovy syntex로 제한적으로 스크립트 언어로 수행가능하다. 그러므로 groovy 언어를 학습하는 것은 파이프라인을 구성하는데 유용하다.
파이프라인은 아래와 같은 여러방식으로 구성가능하다.
- 블루오션 : 파이프라인을 시각화시켜서 파이프 라인 구성을 간편하게 도와준다.
- 클래식UI : 젠킨스의 기본 UI의 파이프라인 script(직접 입력)
- SCM : git등으로 파이프라인 script를 관리 가능
상기 3개의 방식 모두 script를 사용한다는 점은 동일하다.
파이프라인 스크립트 예제
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
echo 'Hello world!'
}
}
}
}
- pipeline : 젠킨스 파이프라인 플러그인을 호출하기 위한 필수 외부 블록
- agent : 파이프라인을 실행하고 싶은 위치 정의
any : 파이프라인이나 스테이지를 실행하기 위해 사용가능한 어느 agent도 사용 할 수 있음 정의 - echo : 간단한 console output 을 찍을 수 있다.
- stages : stage의 모음
- 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만 보냄.
- 도메인 특화 언어(Domain-specific language)는 특정한 도메인을 적용하는데 특화된 컴퓨터 언어이다. 이는 어느 도메인에서나 적용 가능한 범용 언어(General-purpose language)와는 반대되는 개념이다. 젠킨스 파이프라인에서는 groovy 언어를 사용한다. [본문으로]
반응형
'DevOps > CI & CD' 카테고리의 다른 글
젠킨스에서 plugin 설치때 jenkins Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version 에러가 날 경우 (399) | 2019.03.07 |
---|---|
젠킨스 파이프라인 문법(Pipeline Syntax) 총정리 (1033) | 2018.03.12 |
젠킨스 오류 pending - Waiting for next available executor (0) | 2017.07.06 |