groovy 禁用文件夹中的所有Jenkins作业

3gtaxfhh  于 6个月前  发布在  Jenkins
关注(0)|答案(2)|浏览(89)

我有一个Jenkins文件夹,名为“Automated Jobs”,其中有超过20个作业。一旦我创建一个新的安装程序/软件包,所有这些作业都会开始构建。我想禁用该文件夹中的所有作业。我将向该文件夹添加更多作业,因此很难手动禁用每个作业。是否可以禁用该文件夹,并在我完成所有工作后启用它?

k75qkfdt

k75qkfdt1#

您可以从文件夹中获取所有作业,然后在循环中禁用它们:

def jenkins = Jenkins.getInstance()
def folder = jenkins.getItem("yourFolderName")
def jobs =  folder.getAllJobs()

jobs.each {

  println "Disabled: ${it.isDisabled()}"

  //disable
  it.disable()
  println "Disabled: ${it.isDisabled()}"

}

jobs.each{

  println "Enabled: ${!it.isDisabled()}"

  //enable
  it.enable()
  println "Enabled: ${!it.isDisabled()}"
}

字符串

ycggw6v2

ycggw6v22#

您可以使用下面的代码来做递归文件夹禁用或启用(请根据您的需要删除启用/禁用行)。这里DEST_JOB_JENKINS_ROOT是您的作业需要更改的文件夹名称。例如:RootFolder 1/Folder 2/Folder 3删除getAllItems()将在同一个文件夹中执行操作(没有递归)

验证码:

def jenkinsJob = jenkins.model.Jenkins.instance.getItemByFullName("${DEST_JOB_JENKINS_ROOT}").getAllItems()
jenkinsJob.each {
    result = it.doDisable()
    println("Disabled job: [$it.fullName]")
    result = it.doEnable()
    println("Enabled job: [$it.fullName]")
    }

字符串

相关问题