Jenkins 删除所有作业的最新 20 个版本之前的版本 [英] Jenkins delete builds older than latest 20 builds for all jobs

查看:12
本文介绍了Jenkins 删除所有作业的最新 20 个版本之前的版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在清理 Jenkins(它的设置不正确),我需要为每个作业删除比最新 20 个版本旧的版本.

I am in the process of cleaning up Jenkins (it was setup incorrectly) and I need to delete builds that are older than the latest 20 builds for every job.

有没有办法使用脚本或其他东西来自动执行此操作?

Is there any way to automate this using a script or something?

我找到了许多解决方案来删除特定作业的某些构建,但我似乎无法一次找到所有作业的任何内容.

I found many solutions to delete certain builds for specific jobs, but I can't seem to find anything for all jobs at once.

非常感谢任何帮助.

推荐答案

您可以使用 Jenkins 脚本控制台 遍历所有作业,获取 N 个最近的列表并对其他作业执行一些操作.

You can use the Jenkins Script Console to iterate through all jobs, get a list of the N most recent and perform some action on the others.

import jenkins.model.Jenkins
import hudson.model.Job

MAX_BUILDS = 20

for (job in Jenkins.instance.items) {
  println job.name

  def recent = job.builds.limit(MAX_BUILDS)

  for (build in job.builds) {
    if (!recent.contains(build)) {
      println "Preparing to delete: " + build
      // build.delete()
    }
  }
}

Jenkins 脚本控制台是一个很好的管理维护工具,通常有一个现有的脚本可以执行类似于您想要的操作.

The Jenkins Script Console is a great tool for administrative maintenance like this and there's often an existing script that does something similar to what you want.

这篇关于Jenkins 删除所有作业的最新 20 个版本之前的版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆