4

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

在此处输入图像描述

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

4

2 回答 2

6

您可以从 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>
于 2014-09-26T15:47:01.020 回答
1

据我所知,没有直接的方法可以做到这一点,但是您可以使用控制台输出 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/"]
于 2014-09-26T14:53:36.130 回答