我有 Jenkins 有数百个工作,我需要找到运行指定 gradle 任务的工作。我看到以下解决方案 1.retrieve all jobs (Jenkins.instance.projects) 2.iterate over them 3.get xml config 并验证子字符串的存在
问题是如何从 hudson.model.FreeStyleProject 检索 xml 表示?或者可能将这些数据存储为地图,而不是问题将如何调用以及如何获取它?
我有 Jenkins 有数百个工作,我需要找到运行指定 gradle 任务的工作。我看到以下解决方案 1.retrieve all jobs (Jenkins.instance.projects) 2.iterate over them 3.get xml config 并验证子字符串的存在
问题是如何从 hudson.model.FreeStyleProject 检索 xml 表示?或者可能将这些数据存储为地图,而不是问题将如何调用以及如何获取它?
我之前做过类似的事情,但使用的是 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())
}
}
}