-
-
Save kumbasar/9f45da525e9cf20ee48e624b2f9533fc to your computer and use it in GitHub Desktop.
Jenkins - Delete old builds script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MAX_BUILDS = 10 // max builds to keep | |
def jobs = Jenkins.instance.items; | |
for (job in jobs) { | |
println "Job: " + job.name | |
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 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Lo resolví así
import jenkins.model.*
import hudson.model.*
import com.cloudbees.hudson.plugins.folder.*
import jenkins.branch.*
import org.jenkinsci.plugins.workflow.job.*
import org.jenkinsci.plugins.workflow.multibranch.*
/**
*/
def deleteOldBuilds(item, Integer numberOfBuildsToKeep) {
if (numberOfBuildsToKeep < 0) return
}
def getSizeBuildsOfJob(item) {
return Jenkins.instance.getItemByFullName(item.fullName).builds.size()
}
def getFirstBuildbyItem(item) {
return item.getFirstBuild()
}
def listJobObjects(item, Integer numberOfBuildsToKeep) {
if(item instanceof Project) {
// echo 'PROYECTO: (' + item.getName() + ')'
deleteOldBuilds(item, numberOfBuildsToKeep)
} else if(item instanceof Folder) {
// echo ''
// echo 'CARPETA: (' + item.getName() + ')'
// echo '*************************************'
for (subItem in item.items) {
listJobObjects(subItem, numberOfBuildsToKeep)
}
} else if(item instanceof WorkflowMultiBranchProject) {
// echo 'MULTIBRANCH-PROYECTO: (' + item.getName() + ')'
for (subItem in item.items) {
listJobObjects(subItem, numberOfBuildsToKeep)
}
} else if(item instanceof WorkflowJob) {
// echo 'MULTIBRANCH-JOB: (' + item.getName() + ')'
deleteOldBuilds(item, numberOfBuildsToKeep)
} else if(item instanceof OrganizationFolder) {
// echo 'ORG-CARPETA: (' + item.getName() + ')'
for (subItem in item.items) {
listJobObjects(subItem, numberOfBuildsToKeep)
}
} else {
echo 'UNKNOWN: (' + item.getName() + ')'
echo 'CLASS: (' + item.getClass() + ')'
echo 'INSPECT: (' + item.inspect() + ')'
}
}
for (item in Jenkins.instance.items) {
echo ''
listJobObjects(item, 10)
}