我有一个Jenkins文件夹,名为“Automated Jobs”,其中有超过20个作业。一旦我创建一个新的安装程序/软件包,所有这些作业都会开始构建。我想禁用该文件夹中的所有作业。我将向该文件夹添加更多作业,因此很难手动禁用每个作业。是否可以禁用该文件夹,并在我完成所有工作后启用它?
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()}" }
字符串
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]") }
2条答案
按热度按时间k75qkfdt1#
您可以从文件夹中获取所有作业,然后在循环中禁用它们:
字符串
ycggw6v22#
您可以使用下面的代码来做递归文件夹禁用或启用(请根据您的需要删除启用/禁用行)。这里DEST_JOB_JENKINS_ROOT是您的作业需要更改的文件夹名称。例如:RootFolder 1/Folder 2/Folder 3删除getAllItems()将在同一个文件夹中执行操作(没有递归)
验证码:
字符串