使用groovy脚本列出所有Jenkins作业(包括子文件夹)及count,并列出所有启用和禁用的Jenkins作业(包括子文件夹)及count

cetgtptt  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(161)

在Jenkins中,我想使用groovy脚本列出所有Jenkins作业,我已经尝试了几个groovy脚本来获得作业,它工作得很好,现在我想获得不包括文件夹和子文件夹的所有作业的计数。下面是我尝试列出所有作业(包括文件夹和子文件夹)的groovy脚本,但我只需要WorkflowJob、FreestyleProject和maven build作业

Jenkins.instance.getAllItems(Job.class).each{
    println it.name + " - " + it.class
}

第二个问题是如何获得活动作业列表和禁用作业列表以及计数,我已尝试从下面的参考,但它不起作用
find disabled job link found in google
有人请可以帮助这一点,帮助是非常感谢

olmpazwi

olmpazwi1#

第01部分

我不知道你所说的Maven构建作业是什么意思。但是,这里是如何列出所有的作业,无论是工作流作业还是自由式作业,并且这些作业不在文件夹/子文件夹中。

Jenkins.instance.getAllItems(Job.class).each { jobitem ->

  if(jobitem.getName() == jobitem.getFullName()) { // This means it's not in a folder
    if(jobitem instanceof org.jenkinsci.plugins.workflow.job.WorkflowJob || jobitem instanceof hudson.model.FreeStyleProject) {
        println("Job Name: " + jobitem.getFullName())
    }
  }  
}

第二部分

列出禁用的作业。

Jenkins.instance.getAllItems(Job.class).each { jobitem ->     
  if(jobitem.isDisabled()) {
        println("Job Name: " + jobitem.getFullName())
  }  
}

列出未禁用/活动的作业。

Jenkins.instance.getAllItems(Job.class).each { jobitem ->     
  if(!jobitem.isDisabled()) {
        println("Job Name: " + jobitem.getFullName())
  }  
}

相关问题