I have 10 jenkins job in folder foo. I have created a new sub folder baar in folder foo. How to move the 10 jobs from folder foo
As @Pratik Anand mentionned you will first need to install the CloudBees Folders Plugin.
However, if you want to move many projects at the same time, it is much faster to do it with the script console. This groovy script does the trick :
def FOLDER_NAME = ''
def JOB_REGEX = ''
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
}
// Find jobs in main folder
def found = jenkins.items.grep { it.name =~ "${JOB_REGEX}" }
println "Searching main folder : $found"
// Find jobs in other subfolders
jenkins.items.grep { it instanceof com.cloudbees.hudson.plugins.folder.Folder }.each { subfolder ->
if(!subfolder.getName().equals(FOLDER_NAME))
{
println "Searching folder '$subfolder.name'"
subfolder.getItems().grep { it.name =~ "${JOB_REGEX}" }.each { job ->
println "Found $job.name"
found.add(job);
}
}
}
// Move them
found.each { job ->
println "Moving '$job.name' to '$folder.name'"
Items.move(job, folder)
}
I used Daniel Serodio's reply in this thread and modified it to search subfolders also. Note that this is not fully recursive.