如何使用 Python Jenkins API 在 Jenkins 中查找和查询特定构建

How to find and query a specific build in Jenkins using the Python Jenkins API

我们有一个使用特定参数运行构建的 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?

中获取版本

使用/api/xml格式:

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

哪个returns action XML节点可以通过XPath查询:

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

  • 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

参考资料