【问题标题】:List all keep-forever builds in Jenkins?列出 Jenkins 中的所有 keep-forever 构建?
【发布时间】:2014-05-15 18:35:06
【问题描述】:

在 Jenkins 中是否有一种简单的方法可以列出所有标记为永久保留的所有构建?然后,理想情况下,一键取消将构建标记为永久保留或立即删除它?

在我们的流程中,如果构建涉及某种特定类型的故障,我们会将其标记为永久保留;这是为了防止詹金斯随着时间的推移自动删除。我需要一种简单的方法来获取所有永久保留构建的列表,这样它们就不会随着时间的推移占用我们所有的磁盘空间。

【问题讨论】:

    标签: jenkins jenkins-plugins


    【解决方案1】:

    以下针对 Jenkins 的 XPath 查询将列出所有标记为“Keep Forever”的构建的 URL:

    http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever
    

    在浏览器中输入,看看返回什么。

    现在,您可以将其嵌入到基于 XSLT 的 HTML 中,以获取包含指向这些构建的链接的列表。要删除构建,您可以提供一个调用 Jenkins CLI 的按钮:

    java -jar jenkins-cli.jar -s http://[jenkins_server]/ delete-builds [job-name] [build-num]
    

    不幸的是,我不知道如何在不删除的情况下使用 CLI 禁用“永远保持构建”。

    【讨论】:

    • 效果很好 - 如果你的 Jenkins 不是太大的话。不幸的是,生产版 Jenkins 有几百个工作,有几千个构建。 Java 堆栈空间不足。但是使用相同的想法,我可以编写一个脚本来迭代作业和构建并执行相同的操作。感谢您的帮助!
    【解决方案2】:

    我在找同样的东西,我们的詹金斯也很大,正在尝试链接:

     http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever
    

    我最终崩溃了。

    但事实证明,我一次只需要最后一次“永远保持”一项工作,这似乎工作得更快。所以我改用以下内容:

    http://[jenkisn_server]/job/[job_name]/api/xml/?depth=2&xpath=/freeStyleProject/build[keepLog="true"]/number&wrapper=forever
    

    它返回带有标记为“永远保留”的所有构建数量的 xml 您可以修改 xpath 以满足您的需要。

    【讨论】:

    • 我不确定我做错了什么,这是我认为有帮助的。您的评论也不是很有帮助。
    • 谢谢,这正是我需要的。
    猜你喜欢
    • 2011-02-18
    • 2021-07-14
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    相关资源
    最近更新 更多