我们有一个使用特定参数运行构建的 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
引用资料
关于python - 如何使用 Python Jenkins API 在 Jenkins 中查找和查询特定构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534171/