我有Jenkins有几百个工作,我需要找到运行指定gradle任务的工作。我看到以下解决方案 1.retrieve所有工作(Jenkins.instance.projects) 2.对他们进行抨击 3.get xml config并验证子串的存在
问题是如何从hudson.model.FreeStyleProject中检索xml表示?或者可能是这些数据存储为地图,问题将是如何调用以及如何获取它?
答案 0 :(得分:2)
之前我做了类似的事情但使用了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())
}
}
}