2

我有 Jenkins 有数百个工作,我需要找到运行指定 gradle 任务的工作。我看到以下解决方案 1.retrieve all jobs (Jenkins.instance.projects) 2.iterate over them 3.get xml config 并验证子字符串的存在

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

4

1 回答 1

3

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

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

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

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())
    } 
  }
}
于 2018-01-02T16:45:25.210 回答