2017-03-08 189 views
1

我正在使用主动选择插件,并使用了一个groovy脚本来检索Jenkins中所有作业的名称。我可以写一个groovy脚本,让我列出该特定工作的所有内部版本号。如何使用groovy脚本获取jenkins中所有特定作业的编号?

+0

这应该是可以的。我建议你看一下http://javadoc.jenkins-ci.org/jenkins/model/Jenkins.html。有很多API可以使用。 – Chong

+1

你已经尝试过了什么? –

+0

我尝试使用主动选择反应参数,和Groovy脚本获得所选作业高清getAllBuildNumbers的所有版本号(工作任务){ (job.getBuilds()){各建 - > buildNumbers 打印buildNumbers } }但无法检索内部版本号 – ZzzZ

回答

0

尝试:

def xml=new XmlSlurper().parse("http:{serverName}/Jenkins/rssLatest") 
def projects = xml.entry.collect{(it.title as String).split("#")[0].trim()} 
println projects 

总的来说,我建议你浏览詹金斯饲料的简介您想要再寻找一个“RSS频道” - 然后把那个URL的RSS到的XmlSlurper,看看你会得到什么。

另外,我倾向于通过groovysh中的这些东西来工作,它使探索对象的工作方式变得非常简单。在这种情况下,您可能还想在尝试groovysh中的对象时查看原始XML。

1

为了使用主动选择插件获取特定作业的构建列表,可以使用下面的示例。

首先,retriving各作业名称创建一种积极的选择参数: enter image description here

+1

Thanks..it工作 – ZzzZ

0

我会超过: enter image description here

然后从所选择的工作retriving内部版本号创建活动的选择参数REST API(因为我知道它的工作原理):

http:/// api/xml?tree = jobs [name,builds [result,description,id,number,url,timestamp]] & pretty =真正的& xpa TH =哈德森/工作[名称=“”] &包装=工作

这导致这样的事情:

<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> 

所以结合下面的调用具有的foreach循环应该做的伎俩。

def text = "rest_api_url".toURL().text 
def jobs = new XmlSlurper().parseText(text.toString()) 

否则像这样的东西也应该工作 - 即使我没有测试过它。

import jenkins.model.* 

for(item in Jenkins.instance.items) { 
    if ("JOBNAME".equals(item.name)) { 
     // do something with $item.builds 
     // foreach item.builds -> ... 
    } 
} 
相关问题