티스토리 뷰
Pipeline으로 Job을 실행하고 실행결과에 따라 분기처리를 하고 싶은 경우가 생겼다. 예를 들면 a라는 job이 실행이 되었고 이 job이 성공을 하면 b라는 job을 수행하고 실패를 하면 c라는 job을 수행하도록 하고 싶다. 이렇게 구성을 하는건 여러가지 방법이 존재하지만 내가 좋아하는 if else 구문을 사용해서 구성해보겠다.
대략 이런 그림이다. pipeline project를 하나 만들어서 이를 구성해보자.
Pipeline project 생성
새로운 Item 을 눌러서 Pipeline을 지원하는 프로젝트를 생성한다.
Pipeline job을 하나 생성하면 위와 같이 groovy 문법을 사용하여 Pipeline Script를 작성할 수 있다.
Pipeline Script 작성
node{
stage('execute'){
def buildResult = build job: "aJob", propagate: false
def result = buildResult.getResult();
echo "${result}";
if (result != "SUCCESS") {
build job: "cJob"
} else {
build job: "bJob"
}
}
}
buildResult.getResult() 라는 API로 수행한 build의 결과값이 SUCCESS인지 UNSTABLE인지 FAILURE인지 알수 있다. 그에 따라 분기처리하여 후속 작업을 수행하면 된다. propagate: false 는 꼭 명시해줘야한다.
간단하게 Job의 수행 결과에 따라서 분기처리를 하여 후속작업을 수행하는 Job을 완성했다.
별첨
def result = buildResult.getBuildVariables();
이거는 상관은 없는 내용이지만 getBuildVariables() 를 사용하면 다음과 같이 build한 프로젝트의 정보를 보여준다.
끝!
'CI,CD > Jenkins' 카테고리의 다른 글
Jenkins Job에서 Job으로 Parameter 전달하기 (0) | 2020.10.22 |
---|---|
Jenkins Failed Job Post Build 수행하기 (with Parameterized Trigger) (0) | 2020.10.22 |
Jenkins Log Parser 사용해서 Application 오류 처리하기 (0) | 2020.10.21 |
Jenkins에 테마(스킨) 적용하기 (0) | 2020.09.09 |
Jenkins 폐쇄망에서 plugin 설치하기 (0) | 2020.09.09 |
댓글