【问题标题】:How to find and query a specific build in Jenkins using the Python Jenkins API如何使用 Python Jenkins API 在 Jenkins 中查找和查询特定构建
【发布时间】:2016-11-26 19:31:20
【问题描述】:

我们有一个使用特定参数运行构建的 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 获取版本,我将如何搜索作业?

【问题讨论】:

    标签: python json jenkins querying jenkins-api


    【解决方案1】:

    使用 /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
    

    参考文献

    【讨论】:

    • 使用您的解决方案版本解决了它,但不记得之前发布答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多