簡體   English   中英

如何使用groovy腳本獲取jenkins中特定作業的所有構建號?

[英]How can I get all build numbers of particular job in jenkins using groovy script?

我正在使用主動選擇插件,有一個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 projects

一般情況下,我建議瀏覽你的jenkins feed以獲取你想要的信息,然后查找“rss feed” - 然后將該rss URL放入XmlSlurper中,看看你得到了什么。

此外,我傾向於在groovysh中完成這些工作,這使得探索對象如何工作變得非常容易。 在這種情況下,您可能還希望在groovysh中嘗試對象時查看原始XML。

我會討論REST-API(因為我知道它可以工作):

HTTP:/// API / XML樹=就業[名稱,建立[結果說明,身份證,號碼,URL,時間戳]]漂亮=真XPath的=哈德森/工作[名稱= ''] =包裝工作

這導致如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM