使用Jenkins API获取构建配置详细信息

时间:2014-09-26 14:20:01

标签: ruby jenkins jenkins-cli

我正在寻找一种使用Jenkins API获取Jenkins作业配置详细信息的方法。在下图中的命令块中显示的内容。

enter image description here

是否有人尝试使用Jenkins API获取配置详细信息?

2 个答案:

答案 0 :(得分:2)

您可以从以下网址获取作业的原始XML配置: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>

答案 1 :(得分:0)

我知道没有直接这样做的方法,但是你可以使用控制台输出API和一点regex魔法来收集shell执行。

API端点如下所示:

"http://#{server}:#{port}/job/#{job_name}/{build_numer}/logText/progressiveText?start=0"

对于这个例子,让我们说你的shell命令如下:

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/"]