티스토리 뷰
개요
Jenkins를 이용하다보면 특정 parameter에 따라 빌드 방법을 다르게 해야 할 때가 있습니다. 그때 when을 이용합니다. if문을 검색 해보았지만 신통치 않아서 when을 이용하게 되었습니다.
우리가 이용하는 if문과 when은 구조가 조금 다르지만 조건에 따라 실행되고 실행 안된다는 기능을 구현 할 수 있습니다.
pipeline {
agent any
environment{
ENV = "prd"
}
stages {
stage('Hello') {
when{
environment name:"ENV", value:"dev"
}
steps {
echo 'This is dev.'
}
}
stage('Bye') {
when{
environment name:"ENV", value:"prd"
}
steps {
echo 'This is prd.'
}
}
}
}
위 스크립트를 실행 하면 'This is prd.'가 실행 됩니다. 왜냐하면 environment블록의 ENV가 prd이기 때문입니다.
그래서 stage('Hello')는 지나가고 stage('Bye')만 실행 됩니다.
결과
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/jenkins_home/hello
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Hello)
Stage "Hello" skipped due to when conditional
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Bye)
[Pipeline] echo
This is prd.
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
Scripted에서 if문 이용하기
pipeline{}블록과 node{}블록은 사용하는 문법이 다릅니다. node{} 블록에서는 groovy script를 이용합니다.
node{
def env = 'dev'
def sth = 'hello'
if(env == 'dev'){
sth = 'bye'
}
stage('Start build'){
echo "mvn -p $sth"
print("$sth")
}
}
위 스크립트는 env, sth라는 변수를 이용합니다. env라는 변수로 sth변수에 무엇이 들어갈 것인지를 정하는 코드가 되겠습니다.
groovy의 변수를 shell script에도 사용할 수 있습니다 "$sth"를 이용하면 groovy에서 뿐만 아니라 sh에도 사용할 수 있습니다.
결과
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/work
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Start build)
[Pipeline] echo
mvn -p bye
[Pipeline] echo
bye
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vim
- 도커컨테이너
- docker container whale
- 2017 티스토리 결산
- 도커각티슈케이스
- 도커티슈케이스
- docker container case
- 개발자
- Linux
- 도커각티슈박스
- 이직
- docker container tissue
- shellscript
- docker container tissue box
- 싱가폴
- 도커티슈박스
- Sh
- docker container
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함