2019/05/08 - [SW개발] - 젠킨스 파이프라인 ( Jenkin pipeline ) - 병렬로 Job 실행하기
해당 글에 이어서 작성합니다.
젠킨스의 Job을 실행 할 때에, 동일한 스크립트를 환경에 맞춰, 다른 변수를 줘서 실행해야할 일이 생기게 됩니다,
(예를 들어, 회원 등급에 따른, 쿠폰 지급에서 -> A등급에는 3천원 쿠폰, B등급에는 5천원 쿠폰을 줘야 하는 경우, 같은 스크립트에서 A, B / 3000, 5000만 바꾸면 되는 경우입니다.)
이럴 경우에, 젠킨스에서는 Build parameter를 줄 수 있습니다.
일반적으로 , Build parameter 주는 법
* General tab에서, 매개변수를 정하고 값을 넣어주면 됩니다.
그렇다면, Pipeline에서는 어떻게 이 Parameter를 사용할까요?
Pipeline에서 Build parameter 이용하여, Job 실행하기
- Blue Ocean UI로는 Job에 Parameter를 넣을 수가 없습니다. 따라서 직접 Jenkinsfile을 작성합니다
- 해당 Pipeline은 전의 글과 마찬가지로, 3개의 Job(Build-test1,2,3)을 병렬 실행 후, Build-test-4를 실행한다고 가정합니다
- Build-test-1 , Build-test-2, Build-test-3 Job에는 공통으로 쓰는 TEST parameter와 각각의 job에 쓰이는 TEST1,2,3 paramete가 있습니다.
pipeline {
agent none
parameters {
string(name : 'TEST', defaultValue : '0', description : '')
string(name : 'TEST1', defaultValue : '5', description : '')
string(name : 'TEST2', defaultValue : '10', description : '')
}
stages{
stage('Parallel Test') {
parallel {
stage('Build-test-1') {
steps{
build job : 'Build-test-1', parameters: [ string(name: 'TEST', value: "${params.TEST}"), string(name : 'TEST1', value : "${params.TEST1}")]
}
}
stage('Build-test-2') {
steps{
build job : 'Build-test-2', parameters: [ string(name: 'TEST', value: "${params.TEST}"), string(name : 'TEST2', value : "${params.TEST2}")]
}
}
stage('Build-test-3') {
steps{
build job : 'Build-test-3', parameters: [ string(name: 'TEST', value: "${params.TEST}"), string(name : 'TEST3', value : "5")]
}
}
}
}
stage('Build-test-4') {
steps{
build 'Build-test-4'
}
}
}
}
- 4 ~ 6 : Parameter 선언 → Jenkins 위에서 Parameter 선언과 동일하기 때문에, 굳이 코드 상에서 넣어주지 않아도 됨
- 13, 18 : Build시에 parameter 넣기, params.* → build시에 동작, TEST1, TEST2
- 23 : Build시, TEST(부모 job), TEST3(부모 job에 x) 에 값을 넣고 동작
* 그루비는 작은따옴표는 스트링만, 큰따옴표는 $기호로 동적 내용 넣을 수 있음(GString) → https://starrykss.tistory.com/281 그루비 특유의 문법
해당 젠킨스 파일 작성 후
Build with parameters 를 눌러주신 후
해당 parameter의 값을 넣고, 빌드를 해주시면 됩니다.
'SW개발' 카테고리의 다른 글
젠킨스 파이프라인 ( Jenkins pipeline ) - 병렬로 Job 실행하기 (1) | 2019.05.08 |
---|---|
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 |