이전 빌드의 실행 성공 여부에 따라 특정 스테이지 실행되게 할 지 말 지 설정하는 것은 간단하다.
아래와 같이 stage 내부 when.expression
구문에 return currentBuild.resultIsBetterOrEqualTo('SUCCESS)'
를 작성하면 된다.
when {
expression {
return currentBuild.resultIsBetterOrEqualTo('SUCCESS') // 이전 빌드기 성공했을 때
}
}
위에서 사용된 currentBuild는 해당 groovy 파일 내에 별도로 정의된 바가 없다.
currentBuild는 무엇일까?
currentBuild는 Jenkins pipeline에서 지원하는 Global variable references 중 하나로, 직전 빌드에 대한 상태를 가진다.
이 외에도 Jenkins pipeline에서 관리하는 다른 global variable references는 아래와 같은 것들이 있다.
env.BUILD_NUMBER
, env.GIT_BRANCH
등params.JOB_NAME
등stage('A Statistics Job') {
when {
expression {
return currentBuild.resultIsBetterOrEqualTo('SUCCESS') // 이 부분!
}
}
steps {
echo 'Running AStatisticsJob (every midnight)'
build 'aStatisticsJob'
}
}
// 이하 생략
위 코드는 이전 빌드 (이전에 실행한 Job)이 성공한 경우에만 AStaticsticsJob을 실행한다.