2014-09-26 5 views
1

Jenkins API를 처음 사용하고 그것을 읽은 후에 내가 찾고있는 것을 찾을 수 없습니다. Jenkins API에 새로운 기능을 추가하고 있기 때문에 가능할 것으로 생각됩니다.Jenkins API - 빌드 구성 세부 정보 얻기

젠킨스 API를 사용하여 젠킨스 작업의 구성 세부 정보를 얻는 방법을 찾고 있습니다. 아래 이미지의 명령 블록에 표시되는 것.

enter image description here

은 아무도 젠킨스 API를 사용하여 구성 정보를 얻는 시도 했습니까?

답변

2

원시 XML 구성 URL에서 구한 직업 : URL http://jenkins:8080/job/my-job/config.xml

이 URL은 XML의 지속적인 작업 구성을 반환합니다. 빌드 단계는 builders 요소 아래에 나열되어 있으며 다른 유형의 빌드 단계는 다른 요소로 식별됩니다.

<builders> 
    <hudson.tasks.Shell> 
    <command> 
    # Run my shell command... 
    </command> 
    </hudson.tasks.Shell> 
</builders> 
0

내가 아는 바로는 직접적인 방법은 없지만 콘솔 출력 API와 약간의 정규식 마술을 사용하여 쉘 실행을 수집 할 수 있습니다.

이 예를 들어
"http://#{server}:#{port}/job/#{job_name}/{build_numer}/logText/progressiveText?start=0" 

,의이 같은 쉘 명령을 보이는 가정 해 봅시다 :

는 API 엔드 포인트는 다음과 같다 콘솔은 모든 실행 명령 전에 +을두고

bundle install 
bundle exec rspec spec/ 

, 그래서 다음 스크립트가 작동합니다 :

# using rest-client gem for ease of use 
# but you could use net:http and open/uri in the standard library 
require 'rest-client' 

console_output = RestClient.get 'http://jenkins_server:80/job/my_job/100/logtext/progressiveText?start=0' 

console_output.scan(/^\+.+/).each_with_object([]) { |match, array| array << match.gsub('+ ', '') } 
#=> ["bundle install", "bundle exec rspec spec/"] 
+0

굉장 감사! 나는 그것을 시도 할 것이다. BTW는 execution_number에 의해 빌드 번호를 의미합니까? –

+0

예, 그것이 제가 의미했던 것입니다. 나는 대답을 편집 할 것이다. 감사. – Johnson

+0

존슨 존슨! 당신이 제공 한 솔루션이 작동합니다. 제 경우에는 Dave가 남긴 대답이 가장 잘 작동하는 것 같습니다. –