Jenkins Pipeline
Jenkins Pipeline Flugin
- 연속적인 이벤트 혹은, Job의 그룹을 실행시킬 수 있는 젠킨스 플러그인
- 파이프 라인의 통합 및 구현을 지원
- Pipeline 전용 DSL을 통해, '코드'로서 기능을 정의 및 생성 가능
- Jenkinsfile을 통해 작업 생성
- 시각화 된, 빌드 화면으로 로그 실시간 로그 확인 가능
- https://jenkins.io/doc/book/pipeline - 파이프라인 문서
작성 방법
Jenkinsfile 작성법 3가지
- Job 구성에서, 직접 Jenkinsfile을 작성
- SCM을 이용해서 Jenkinsfile 을 작성하는 법 - github에 관리 후 젠킨스에서 실행
- Blueocean 플러그인으로 UI를 통해 Jenkinsfile 작성 - github에 관리
작성 예시
Jenkinsfile 예시
Jenkinsfile의 작성 방법은 https://jenkins.io/doc/book/pipeline/syntax/ 에서 참고하였습니다.
- 작성 방법은 2가지가 있습니다
- Declarative Pipeline : 보다 쉽게 작성 할 수 있게, 커스텀 되어 있음. Groovy-syntax기반 - Groovy 문법을 잘 몰라도 작성 가능
- Scripted Pipeline : Groovy기반, Declarative보다 효과적으로 많은 기능을 포함하여 작성 가능. 하지만 작성 난이도가 높음 - Groovy 문법을 잘 알아야 함
- 2가지 문법을 번갈아 사용 가능 - 동시에는 X
예시
Declarative
pipeline {
agent none
stages{
stage('Parallel Test') {
parallel {
stage('Build-test-1') {
steps{ build 'Build-test-1' }
}
stage('Build-test-2') {
steps{ build 'Build-test-2' }
}
stage('Build-test-3') {
steps{ build 'Build-test-3' }
}
}
}
stage('Build-test-4') {
steps{
build 'Build-test-4'
}
}
}
}
- 1 : Declarative 시작 - pipeline /// Scripted - node
- 2 : Backgroud로 돌아가는 agent를 정해줘야 함, 해당 파이프라인은 다른 job을 실행 하는 것이기 때문에, agent 불필요
- 5 : stage들을 병렬로 실행
- 7 : Build-test-1 이라는 이름의 job을 빌드
- 17 : Parallel Test가 끝난 후, 다음 stage
Scripted
node {
stage('Parallel-test') {
parallel 'Build-test-1' : {
build job : 'Build-test-1'
} , 'Build-test-2' : {
build job : 'Build-test-2'
} , 'Build-test-3' : {
build job : 'Build-test-3'
}
}
stage('Build-test-4') {
build job : 'Build-test-4'
}
}
- 1 : Scripted 시작
- 3 : parallel 밑으로, 이어서 build 1 2 3
- 11 : 전 stage가 끝이나야 동작
→ 해당 Jenkinsfile로 Pipleine을 동작할 경우, Build-test-1 ~ 3이 병렬로 실행 된 후, 모든 빌드가 끝나면 Build-test-4가 빌드
→ 두 가지, 방법 모두 같은 결과
- 이렇게, 두 개를 혼용하여 작성도 가능(같은 결과)
node {
stage('Parallel-test') {
parallel 'Build-test-1' : {
build job : 'Build-test-1'
} , 'Build-test-2' : {
build job : 'Build-test-2'
} , 'Build-test-3' : {
build job : 'Build-test-3'
}
}
}
pipeline {
agent none
stages {
stage('Build-test-4') {
steps {
build 'Build-test-4'
}
}
}
}
Job 구성에서, 직접 Jenkinsfile 을 작성
- New item - pipeline 생성
- Pipeline 탭 클릭, Definition - Pipeline script 선택 후, 다음과 같이 작성하면 됩니다.
- 빌드 결과
SCM을 이용해서 Jenkinsfile을 작성
- Pipeline 탭 클릭, Definition - Pipeline script from SCM
- Git 선택 후, Repostory, Branch를 선택 후, Git저장소에 있는, Jenkinsfile 위치를 Script Path에 넣어주면 됨
- 빌드 결과
Blueocean 플러그인으로 UI를 통해 Jenkinsfile 작성
- 추가적으로 Blueocean - pipeline 플러그인 설치가 필요합니다
- Blue Ocean 열기
- New Pipeline
- Github 저장소 연결
- + 버튼으로 stage 추가 가능, 오른쪽 Agent 선택 가능
- Build Job 추가
- 위의 방식 대로 만들고 Save
- Github에 커밋 & 푸쉬
- Push된 Jenkinsfile - 위의 예시와 동일
- 빌드 결과
[ 참고 ]
https://voidmainvoid.tistory.com/100
https://blog.voidmainvoid.net/104
https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/getting-started
'SW개발' 카테고리의 다른 글
젠킨스 파이프라인(Jenkins pipeline) - 빌드 파라미터 넣기 (0) | 2019.05.17 |
---|---|
Kotlin + Spring boot security + thymeleaf 로그인 구현(3) (0) | 2019.04.04 |
Kotlin + Spring boot security + thymeleaf 로그인 구현(2) (0) | 2019.04.01 |
Kotlin + Spring boot security + thymeleaf 로그인 구현(1) (0) | 2019.03.28 |
Spring Boot Security (2) | 2019.03.28 |