【发布时间】:2014-05-15 18:35:06
【问题描述】:
在 Jenkins 中是否有一种简单的方法可以列出所有标记为永久保留的所有构建?然后,理想情况下,一键取消将构建标记为永久保留或立即删除它?
在我们的流程中,如果构建涉及某种特定类型的故障,我们会将其标记为永久保留;这是为了防止詹金斯随着时间的推移自动删除。我需要一种简单的方法来获取所有永久保留构建的列表,这样它们就不会随着时间的推移占用我们所有的磁盘空间。
【问题讨论】:
在 Jenkins 中是否有一种简单的方法可以列出所有标记为永久保留的所有构建?然后,理想情况下,一键取消将构建标记为永久保留或立即删除它?
在我们的流程中,如果构建涉及某种特定类型的故障,我们会将其标记为永久保留;这是为了防止詹金斯随着时间的推移自动删除。我需要一种简单的方法来获取所有永久保留构建的列表,这样它们就不会随着时间的推移占用我们所有的磁盘空间。
【问题讨论】:
以下针对 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 禁用“永远保持构建”。
【讨论】:
我在找同样的东西,我们的詹金斯也很大,正在尝试链接:
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 以满足您的需要。
【讨论】: