Dav*_*her 15
您可以使用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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jenkins脚本控制台是一个很好的管理维护工具,并且通常有一个现有的脚本可以执行类似于您想要的操作.
我No such property: builds for class: com.cloudbees.hudson.plugins.folder.Folder在运行 @Dave Bacher 的脚本时遇到了 Folders Plugin 6.6的问题
改变它以使用功能性api
import jenkins.model.Jenkins
import hudson.model.Job
MAX_BUILDS = 5
Jenkins.instance.getAllItems(Job.class).each { job ->
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()
}
}
}
Run Code Online (Sandbox Code Playgroud)