列出Jenkins中所有永久构建的内容?

Jas*_*ger 7 jenkins jenkins-plugins

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

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

mal*_*cot 10

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

http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever
Run Code Online (Sandbox Code Playgroud)

在浏览器中输入它并查看它返回的内容.

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

java -jar jenkins-cli.jar -s http://[jenkins_server]/ delete-builds [job-name] [build-num]
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道如何使用CLI禁用"永远保持构建"而不删除它.

  • 效果很好——如果你的詹金斯不是太大的话。不幸的是,生产 Jenkins 有数百个工作岗位和数千个构建。Java 堆栈空间不足。但使用相同的想法,我可以编写一个脚本来迭代作业并构建并执行相同的操作。谢谢您的帮助! (2认同)

tea*_*hat 6

我一直在寻找相同的东西,我们的jenkins也非常大,并尝试链接:

 http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever
Run Code Online (Sandbox Code Playgroud)

我最终崩溃了.

但事实证明,我只需要一次完成一项工作的最后"永远保持",这似乎更快.所以我使用以下代码:

http://[jenkisn_server]/job/[job_name]/api/xml/?depth=2&xpath=/freeStyleProject/build[keepLog="true"]/number&wrapper=forever
Run Code Online (Sandbox Code Playgroud)

返回带有标记为"永远保留"的所有构建数的xml您可以修改xpath以满足您的需要.

  • 我不确定我做错了什么,这是我认为有用的.您的评论也不是很有帮助. (2认同)