Jenkins 원격으로 빌드 호출후 JOB 정보 확인방법

일반적인 절차는
1) -> 2) -> 3-1) -> 4) 입니다.
하지만 Queue 조회가 늦을 경우, Queue에서 정보가 사라질 수 있으므로
1) -> 2) -> 3-2) 방식도 나쁘지 않을것으로 생각됩니다.
주의하실 점은, build api의 리턴값이 jenkins 버전에 따라 조금 다를 수 있으므로 참고하세요.
——————————————————————————–

1) 현재 JOB의 마지막 빌드번호를 확인
/job/{JOB명}/api/xml?tree=builds[number]{0}
아래 예의 경우, 마지막 빌드 번호는 4

<freeStyleProject _class="hudson.model.FreeStyleProject">
<build _class="hudson.model.FreeStyleBuild">
<number>4</number>
</build>
</freeStyleProject>

2) Jenkins의 JOB build api 호출하여 빌드를 요청하고, QueueID 를 확인
/job/{JOB명}/build?delay=0sec
예시의 경우 QueueID 는 3
Status Code: 201 Created
Location: http://{JENKINS_URL}/queue/item/3/

3-1) Queue URL로 다시 호출하여
resonse-body에 build-number가 표시되면 다시 JOB 조회 api를 호출
/queue/item/3/api/xml

3-2) JOB 조회 api 를 호출하여 QueueId 가 동일한 JOB의 번호, URL 을 확인
/job/{JOB명}/api/xml?tree=builds[number,queueId]&xpath=//build[queueId={2)QueueId} and number>{latest_JobId}]

<build _class="hudson.model.FreeStyleBuild">
<number>2</number>
<queueId>1</queueId>
<result>SUCCESS</result>
<url>http://{jenkins_url}/job/{JOB명}/2/</url>
</build>

4) 해당 JOB의 URL을 조회하여 빌드 실행 결과를 확인. ( SUCCESS, 또는 FAIL 될때까지 계속 조회.. )
http://jenkins_url/job/JOB명/빌드번호/api/xml?tree=result

<freeStyleBuild _class="hudson.model.FreeStyleBuild">
<result>SUCCESS</result>
</freeStyleBuild>

reference : https://stackoverflow.com/questions/24507262/retrieve-id-of-remotely-triggered-jenkins-job

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중


%d 블로거가 이것을 좋아합니다: