Jenkins에서 빌드 후 빌드가 통과되거나 실패하면 쉘 스크립트를 실행하려고합니다. 타겟 실행을 제외하고 일부 쉘 스크립트를 실행하기 위해 빌드 후이 옵션을 볼 수 없습니다.
답변:
Groovy Post Build를 사용하여 임의의 명령을 실행할 수도 있습니다 . 그러면 실행시기 등을 제어 할 수 있습니다. 빌드가 실패하거나 불안정한 경우 '비난의 손가락'셸 스크립트를 실행하는 데 사용합니다.
if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE")
lastStableBuild = item.getLastStableBuild()
lastStableDate = lastStableBuild.getTime()
formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a")
now = new Date()
formattedNow = now.format("MM/dd/yyyy h:mm:ss a")
command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"]
manager.listener.logger.println "FOB Command: ${command}"
manager.listener.logger.println command.execute().text
}
(우리의 명령은 마지막 안정된 빌드 날짜와 현재 시간을 매개 변수로 사용하므로 빌드를 손상시킬 수있는 사람을 조사 할 수 있지만 비슷한 방식으로 원하는 명령을 실행할 수 있습니다.)
질문을 제대로 읽고 있다면 빌드의 빌드 후 작업 부분에서 스크립트를 실행하고 싶습니다.
필자 는 빌드가 아티팩트를 보관하고 테스트 결과를 게시 한 후 실행 하기 위해 PostBuildScript 플러그인 을 사용 git clean -fxd
합니다. 내 Jenkins 슬레이브에는 SSD 디스크가 있으므로 작업 공간에 생성 된 파일을 보관할 공간이 없습니다.
Batch Task 플러그인 을 사용하면 가능합니다 .
대안은 포스트 빌드 작업 플러그인 일 수도 있습니다 .
빌드 후 셸 스크립트를 별도의 Jenkins 작업으로 설정하고 빌드 후 단계로 트리거해야합니다. 표준 "다른 프로젝트 빌드"옵션은 트리거링 빌드가 성공한 경우에만 작동 하므로 매개 변수화 된 트리거 플러그인 을 사용해야하는 것 같습니다 .