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