如何将jenkins作业移动到子文件夹?

Max*_*lah 21 jenkins

我在文件夹中有10个jenkins工作foo.我baar在文件夹中创建了一个新的子文件夹foo.如何将10个作业从文件夹移动foo到子文件夹baar

Pra*_*and 25

首先,您需要安装cloudbees文件夹插件,然后您将在作业中看到"移动"选项

在此输入图像描述

单击它,然后选项(下拉)将到达您想要移动的位置 在此输入图像描述

选择并移动

  • 值得一提的是,“移动”选项仅在服务器上至少存在一个文件夹时才会显示。 (2认同)

JM *_*ord 7

正如@Pratik Anand所提到的,您首先需要安装CloudBees文件夹插件.

但是,如果要同时移动多个项目,使用脚本控制台执行此操作要快得多.这个时髦的脚本可以解决这个问题:

def FOLDER_NAME = '<An existing destination folder>'
def JOB_REGEX = '<A regex to find your jobs>'

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)
}
Run Code Online (Sandbox Code Playgroud)

我在这个帖子中使用了Daniel Serodio的回复,并将其修改为搜索子文件夹.请注意,这不是完全递归的.