Jenkins API를 처음 사용하고 그것을 읽은 후에 내가 찾고있는 것을 찾을 수 없습니다. Jenkins API에 새로운 기능을 추가하고 있기 때문에 가능할 것으로 생각됩니다.Jenkins API - 빌드 구성 세부 정보 얻기
젠킨스 API를 사용하여 젠킨스 작업의 구성 세부 정보를 얻는 방법을 찾고 있습니다. 아래 이미지의 명령 블록에 표시되는 것.
은 아무도 젠킨스 API를 사용하여 구성 정보를 얻는 시도 했습니까?
Jenkins API를 처음 사용하고 그것을 읽은 후에 내가 찾고있는 것을 찾을 수 없습니다. Jenkins API에 새로운 기능을 추가하고 있기 때문에 가능할 것으로 생각됩니다.Jenkins API - 빌드 구성 세부 정보 얻기
젠킨스 API를 사용하여 젠킨스 작업의 구성 세부 정보를 얻는 방법을 찾고 있습니다. 아래 이미지의 명령 블록에 표시되는 것.
은 아무도 젠킨스 API를 사용하여 구성 정보를 얻는 시도 했습니까?
원시 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>
내가 아는 바로는 직접적인 방법은 없지만 콘솔 출력 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/"]
굉장 감사! 나는 그것을 시도 할 것이다. BTW는 execution_number에 의해 빌드 번호를 의미합니까? –
예, 그것이 제가 의미했던 것입니다. 나는 대답을 편집 할 것이다. 감사. – Johnson
존슨 존슨! 당신이 제공 한 솔루션이 작동합니다. 제 경우에는 Dave가 남긴 대답이 가장 잘 작동하는 것 같습니다. –