Jenkins에서 빌드 후 셸 스크립트 실행


81

Jenkins에서 빌드 후 빌드가 통과되거나 실패하면 쉘 스크립트를 실행하려고합니다. 타겟 실행을 제외하고 일부 쉘 스크립트를 실행하기 위해 빌드 후이 옵션을 볼 수 없습니다.

답변:


67

포스트 빌드 작업 플러그인 으로 매우 쉽게 수행 할 수 있습니다 .

Jenkins- "포스트 빌드 작업"옵션


48
단순히 스크립트를 실행하는 대신 PostBuildScript 플러그인을 권장합니다 . 로그 출력을 조건화 할 필요가 없으면 더 간단하고 강력합니다. 예를 들어 빌드 후 작업에서 모든 빌드 단계를 실행할 수 있습니다.
Sampo

9
또한 Post Build Task 플러그인은 전체 콘솔 출력을 메모리에 저장하여 조건부 테스트를 수행합니다. 수백 개의 작업이 많은 출력을 생성하는 경우 많은 메모리를 차지할 수 있습니다 ... 젠킨스 마스터가 방금 충돌했습니다. 이 플러그인에 ...
grayaii

1
PostBuildScript 플러그인이 일시 중지되었습니다.
Upen

@Upen을 증명하는 링크를 제공 할 수 있습니까?
Vadim Kotov

10

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
}

(우리의 명령은 마지막 안정된 빌드 날짜와 현재 시간을 매개 변수로 사용하므로 빌드를 손상시킬 수있는 사람을 조사 할 수 있지만 비슷한 방식으로 원하는 명령을 실행할 수 있습니다.)


6

질문을 제대로 읽고 있다면 빌드의 빌드 후 작업 부분에서 스크립트를 실행하고 싶습니다.

필자 는 빌드가 아티팩트를 보관하고 테스트 결과를 게시 한 후 실행 하기 위해 PostBuildScript 플러그인 을 사용 git clean -fxd합니다. 내 Jenkins 슬레이브에는 SSD 디스크가 있으므로 작업 공간에 생성 된 파일을 보관할 공간이 없습니다.



1

빌드 후 셸 스크립트를 별도의 Jenkins 작업으로 설정하고 빌드 후 단계로 트리거해야합니다. 표준 "다른 프로젝트 빌드"옵션은 트리거링 빌드가 성공한 경우에만 작동 하므로 매개 변수화 된 트리거 플러그인 을 사용해야하는 것 같습니다 .


내 작업에있는 실행 가능한 셸 스크립트를 기반으로 빌드가 독점적으로 실패하는 경우 스크립트를 트리거하려면 어떻게해야합니까? 감사합니다
topgun

이것을 생각하면 빌드 스크립트 자체에서 제어하는 ​​것이 더 쉬울 수 있습니다. 어떤 빌드 프레임 워크를 사용하고 있습니까?
gareth_bowles 17:53에
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.