如何通过 groovy 网络控制台检索作业配置?

How retrieve job config via groovy web console?

我的 Jenkins 有数百个作业,我需要找到运行指定 gradle 任务的作业。我看到以下解决方案 1.retrieve 所有职位(Jenkins.instance.projects) 2.iterate 在他们之上 3.get xml 配置并验证子字符串是否存在

问题是如何从 hudson.model.FreeStyleProject 中检索 xml 表示?或者可能是将此数据存储为地图,而不是问题是如何调用它以及如何获取它?

我之前做过类似的事情,但使用的是 shell 脚本。不确定这种方法是否对您有用,但以防万一:

cd /var/lib/jenkins/jobs/
grep WORD */config.xml

还有下一个 groovy 可以列出所有 FreeStyleProject 名称和 gradle 任务的脚本:

def builderFilter = {  builder -> builder.class == hudson.plugins.gradle.Gradle.class }

jenkins.model.Jenkins.instance.getAllItems(hudson.model.FreeStyleProject.class).each{ job ->
  job.getBuilders().findAll(builderFilter).each{ gradleStep -> 
    gradleStep.each { gradleItem -> 
      println(job.getDisplayName() + ' ' + gradleItem.getTasks())
    } 
  }
}