我正在寻找一种使用 Jenkins API 获取 Jenkins 作业的配置详细信息的方法。下图中的命令块中显示的内容。
有没有人尝试使用 Jenkins API 获取配置详细信息?
我正在寻找一种使用 Jenkins API 获取 Jenkins 作业的配置详细信息的方法。下图中的命令块中显示的内容。
有没有人尝试使用 Jenkins API 获取配置详细信息?
您可以从 URL 获取作业的原始 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>
据我所知,没有直接的方法可以做到这一点,但是您可以使用控制台输出 API 和一点正则表达式魔术来收集 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/"]