一尘不染

詹金斯(Jenkins)删除所有作业的最新版本比最新的20版本更早的版本

jenkins

我正在清理Jenkins(它的设置不正确),并且我需要删除每个工作都比最新的20个版本更旧的版本。

有什么办法可以使用脚本或其他方式来自动执行此操作?

我发现了很多解决方案,可以删除特定作业的某些内部版本,但似乎无法一次找到所有作业的任何内容。

任何帮助深表感谢。


阅读 209

收藏
2020-07-25

共1个答案

一尘不染

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

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脚本控制台是进行此类管理维护的出色工具,并且通常存在一个现有脚本,其功能类似于您想要的。

2020-07-25