6

我们有一个使用特定参数运行构建的 Jenkins 作业。其中两个参数对我来说很重要:正在部署构建的机器,以及部署的包的版本号。

https://jenkinsurl/job/folder_level1/job/folder_level2/job/folder_level3/job_id/

这是 url 的 json 输出示例:

https://jenkinsurl/job/folder_level1/job/folder_level2/job/folder_level3/job_id/api/json

{"actions":[{"parameters":[{"name":"lab_name","value":"labA"},{"name":"version_no","value":"1.1"}]}

使用 Jenkins REST API 或 Python Jenkins 包装器,如果我知道 folder_level1 并希望将实验室名称与 folder_level3 中的作业匹配以最终从该 URL 获取版本,我将如何搜索作业?

4

1 回答 1

5

使用 /api/xml 格式:

https://jenkinsurl/job/folder_level1/api/xml

它返回action可以通过 XPath 查询的 XML 节点:

从那里获取匹配的名称以搜索有问题的数据:

  • builtOn - 正在部署构建的机器
  • number - 部署的包的版本号

为每个使用 XPath,以及用于分组的包装器节点,例如 builtOn 的以下内容:

https://jenkinsurl/job/folder_level1/api/xml?depth=3&xpath=//fullDisplayName[contains(text(),'foo')]/following-sibling::builtOn&wrapper=builtOn_results

另一个版本:

https://jenkinsurl/job/folder_level1/api/xml?depth=3&xpath=//fullDisplayName[contains(text(),'foo')]/following-sibling::number&wrapper=version_results

参考

于 2016-10-13T16:39:20.887 回答