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

sha*_*war 6 python json querying jenkins jenkins-api

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

https://开头jenkinsurl /工作/ folder_level1 /工作/ folder_level2 /工作/ folder_level3/JOB_ID /

以下是url的json输出示例:

https://开头jenkinsurl /工作/ folder_level1 /工作/ folder_level2 /工作/ folder_level3/JOB_ID/API/JSON

{"actions":[{"parameters":[{"name":"lab_name","value":"labA"},{"name":"version_no","value":"1.1"}]}
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*tte 5

使用/ api/xml格式:

https://jenkinsurl/job/folder_level1/api/xml
Run Code Online (Sandbox Code Playgroud)

返回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
Run Code Online (Sandbox Code Playgroud)

和另一个版本:

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

参考