Skip to content

Instantly share code, notes, and snippets.

@patrinhani-ciandt
Created September 9, 2019 16:48
Show Gist options
  • Save patrinhani-ciandt/e1ba8776947767eee9ef95feeb709328 to your computer and use it in GitHub Desktop.
Save patrinhani-ciandt/e1ba8776947767eee9ef95feeb709328 to your computer and use it in GitHub Desktop.
Jenkins Groovy Script to move jobs to a specific folder
def FOLDER_NAME = 'target/folder/fullName'
def JOBS_FOLDER_NAME = 'jobs/search/folder/fullName'
def JOB_REGEX = 'jobs/search/folder/fullName/someRegexHere[-]([-]?[A-Za-z]+)+'
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
jenkins = Jenkins.instance
def folder = jenkins.getItemByFullName(FOLDER_NAME)
if (folder == null) {
println "ERROR: Folder '$FOLDER_NAME' not found"
return
}
def jobsFolder = jenkins.getItemByFullName(JOBS_FOLDER_NAME)
if (jobsFolder == null) {
println "ERROR: Jobs Folder '$JOBS_FOLDER_NAME' not found"
return
}
// Find jobs in main folder
def found = jenkins.items.grep { it.fullName =~ "${JOB_REGEX}" }
println "Searching main folder : $found"
// Find jobs in other subfolders
println "Searching folder '$jobsFolder.fullName'"
jobsFolder.getItems().grep { it.fullName =~ "${JOB_REGEX}" }.each { job ->
println "Found $job.fullName"
found.add(job);
}
// Move them
found.each { job ->
println "Moving '$job.fullName' to '$folder.fullName'"
Items.move(job, folder)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment