【问题标题】:How can I get all build numbers of particular job in jenkins using groovy script?如何使用 groovy 脚本在 jenkins 中获取特定工作的所有内部版本号?
【发布时间】:2017-03-08 08:24:07
【问题描述】:

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

【问题讨论】:

  • 应该可以的。我建议你看看javadoc.jenkins-ci.org/jenkins/model/Jenkins.html。您可以使用许多 API。
  • 你已经尝试了什么?
  • 我尝试使用 active Choice 反应参数和 groovy 脚本来获取所选作业的所有内部版本号 def getAllBuildNumbers(Job job) { (job.getBuilds()).each { build -> buildNumbers打印 buildNumbers } } 但无法检索内部版本号

标签: jenkins groovy jenkins-plugins


【解决方案1】:

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

首先,创建一个用于检索作业名称的主动选择参数:

然后创建一个活动选择参数,用于从所选作业中检索内部版本号:

【讨论】:

【解决方案2】:

试试:

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。

【讨论】:

    【解决方案3】:

    我会检查 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>
    

    所以下面的调用结合 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 -> ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多