Skip to content

Instantly share code, notes, and snippets.

@cccaternberg
Last active November 10, 2024 18:12
Show Gist options
  • Save cccaternberg/e1cd1f6ead5e40e3d37e57d23430e94d to your computer and use it in GitHub Desktop.
Save cccaternberg/e1cd1f6ead5e40e3d37e57d23430e94d to your computer and use it in GitHub Desktop.
listAllJobtriggers
import jenkins.model.Jenkins
import com.cloudbees.hudson.plugins.folder.Folder
import hudson.triggers.TimerTrigger
def listAllJobs(folder, indent = "") {
folder.getItems().each { item ->
if (item instanceof Folder) {
// Print folder name and recurse into subfolder
println "${indent}Folder: ${item.fullName}"
listAllJobs(item, indent + " ")
} else {
// Print job name
if (item.metaClass.respondsTo(item, "getTriggers")){
def triggers = item.getTriggers()
def job = item.fullName
triggers.each { trigger, descriptor ->
job=job + "cron:" + descriptor
}
println "${indent}Job: ${job}"
}
}
}
}
// Start from the root folder (Jenkins instance)
println "Listing all jobs from Jenkins Controller root:"
listAllJobs(Jenkins.instance)
import jenkins.model.Jenkins
import com.cloudbees.hudson.plugins.folder.Folder
import hudson.triggers.TimerTrigger
def listAllJobs(folder, indent = "") {
folder.getItems().each { item ->
if (item instanceof Folder) {
// Print folder name and recurse into subfolder
println "${indent}Folder: ${item.fullName}"
listAllJobs(item, indent + " ")
} else {
// Print job name
if (item.metaClass.respondsTo(item, "getTriggers")){
def triggers = item.getTriggers()
def job = item.fullName
triggers.each { triggerName, trigger ->
if (trigger instanceof hudson.triggers.TimerTrigger) {
// Output the cron pattern
println "Cron pattern for job '$job': ${trigger.spec}"
}
}
println "${indent}Job: ${job}"
}
}
}
}
// Start from the root folder (Jenkins instance)
println "Listing all jobs from Jenkins Controller root:"
listAllJobs(Jenkins.instance)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment