是否 有 方法 批量 删除 未 使用 的 Jenkins 作业 ? ( 过去 6 个 月 内 未 运行 )

hivapdat  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(146)

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

dy1byipe

dy1byipe1#

您可以使用下面的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()
        
    }    
}

相关问题