我正在寻找一种使用Jenkins API获取Jenkins作业配置详细信息的方法。在下图中的命令块中显示的内容。
是否有人尝试使用Jenkins API获取配置详细信息?
答案 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/"]