diff --git a/jenkins_delete_old-builds.groovy b/jenkins_delete_old-builds.groovy new file mode 100644 index 0000000..88eac82 --- /dev/null +++ b/jenkins_delete_old-builds.groovy @@ -0,0 +1,26 @@ +MAX_BUILDS = 10 // max builds to keep + +def jobs = Jenkins . instance . items; + +for (job in jobs) { + println " Job: " + job . yam + try { + if (job instanceof jenkins.branch.MultiBranchProject ) { + println " Multibranch " + job = job . getJob ( " master " ) + } + def recent = job . builds . limit ( MAX_BUILDS ) + println " Recent Builds: " + recent + println " ============================= " + + for (build in job . builds) { + if ( ! recent . contains (build) && ! build . isBuilding ()) { + println " Deleting: " + build + build . delete () + println " " + } + } + } catch ( Exception ex) { + continue + } +}