繁体   English   中英

如何使用 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

它返回可以通过 XPath 查询的action 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

参考文献

我正在努力为Jenkins XML API编写xPath,以仅获取具有特定参数值的作业的构建。 假设我有Job-'MyJob',它有几个参数,其中之一是'SomeParameterName'。 我想过滤并仅获取那些以SomeParameterName ='SomeValue'运行的版本。 请帮忙!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM