有没有办法批量删除未使用的詹金斯作业? (过去 6 个月内未运行)

问题描述 投票:0回答:1

我有一个 Jenkins 实例,多个团队正在使用它。它经常变得混乱,人们在测试后不会删除他们的测试作业。有没有办法删除未使用的作业(过去 6 个月内未运行),包括其工作空间?

jenkins jenkins-pipeline jenkins-groovy jenkins-cli
1个回答
2
投票

您可以使用以下 Groovy 脚本来实现此目的。注释掉删除部分并在使用之前进行测试以确保它是您需要的:)

def deleteBefore = "2022/07/01"

Jenkins.instance.getAllItems(Job.class).each { jobitem ->
  def jobName = jobitem.getFullName()

  def deleteBeforeTime = new Date(deleteBefore).getTime()

  def build = jobitem.getLastBuild() 

  if(build == null || build.getTimeInMillis() <= deleteBeforeTime){ // If no builds, build is null

    println build == null ? "Job " + jobName + " has never run, deleting the Job" : "Job " + jobName + " last ran on (" + build.getTime() + ") hence deleting"
    jobitem.delete()
  }    
}
© www.soinside.com 2019 - 2024. All rights reserved.