如何使用groovy脚本获得jenkins中特定作业的所有构建编号?
我使用的是ActiveChoice插件,它有一个groovy脚本,可以检索Jenkins中所有作业的名称。我可以编写一个groovy脚本,让我列出该特定作业的所有版本号。试试:如何使用groovy脚本获得jenkins中特定作业的所有构建编号?,jenkins,groovy,jenkins-plugins,Jenkins,Groovy,Jenkins Plugins,我使用的是ActiveChoice插件,它有一个groovy脚本,可以检索Jenkins中所有作业的名称。我可以编写一个groovy脚本,让我列出该特定作业的所有版本号。试试: def xml=new XmlSlurper().parse("http:{serverName}/Jenkins/rssLatest") def projects = xml.entry.collect{(it.title as String).split("#")[0].trim()} println project
def xml=new XmlSlurper().parse("http:{serverName}/Jenkins/rssLatest")
def projects = xml.entry.collect{(it.title as String).split("#")[0].trim()}
println projects
一般来说,我建议浏览jenkins提要以获取您想要的信息,然后查找“rss提要”——然后将该rss URL放入XmlSlurper,看看您得到了什么
我也倾向于在groovysh中处理这些事情,这使得探索对象如何工作变得非常容易。在这种情况下,您可能还希望在groovysh中尝试对象时查看原始XML。为了使用active choice插件获取特定作业的生成列表,您可以使用以下示例 首先,创建用于检索作业名称的活动选项参数: 然后创建一个活动的选项参数,用于从所选作业中检索内部版本号:
我会浏览一下REST-API(因为我知道它在那里工作): http:///api/xml?tree=jobs[name,builds[result,description,id,number,url,timestamp]&pretty=true&xpath=hudson/job[name='']&wrapper=jobs 这会导致如下结果:
<jobs>
<job _class="...">
<name>JOBNAME</name>
<build _class="...">
<id>66</id>
<number>66</number>
<result>FAILURE</result>
<timestamp>1489717287702</timestamp>
<url>JOB_URL</url>
</build>
...
</job>
<jobs>
否则类似的东西也应该可以工作——即使我还没有测试过它
import jenkins.model.*
for(item in Jenkins.instance.items) {
if ("JOBNAME".equals(item.name)) {
// do something with $item.builds
// foreach item.builds -> ...
}
}
这应该是可能的。我建议你去看看。您可以使用许多API。您已经尝试了什么?我尝试使用active Choice被动参数和groovy脚本来获取所选作业的所有内部版本号def getAllBuildNumbers(作业){(作业.getBuilds())。每个{build->buildNumbers打印内部版本号}但无法检索版本号如果您正在寻找groovy脚本,请签出此答案及其注释作为此答案的补充:
import jenkins.model.*
for(item in Jenkins.instance.items) {
if ("JOBNAME".equals(item.name)) {
// do something with $item.builds
// foreach item.builds -> ...
}
}