2016-11-20 73 views
1

我在Jenkins 2中有一個多分支管道作業,連接到一個GitHub存儲庫(可用here)。 GitHub倉庫中的每個pull請求都會在Jenkins中創建一個新的「job」,但作業從pull請求編號繼承它的名字(即作業被稱爲PR-1,PR-2等等),這在Jenkins中是沒有意義的上下文。 是否有可能(以及如何)配置作業或Jenkinsfile爲每個拉取請求添加作業描述?如何在Jenkins 2多分支管道中添加工作描述?

+0

複製? http://stackoverflow.com/questions/38532119/set-the-pipeline-name-and-description-from-jenkinsfile – MaTePe

+0

不完全是我在找什麼,但讓我走上正軌。使用'Jenkins.instance.getItemByFullName(「xxx/PR-zz」)。setDisplayName(「任何描述...」)只會改變顯示名稱。爲了從GitHub獲取拉請求描述,我將添加更多代碼,並在此處作出答案。 –

回答

2

這是我如何能夠從拉請求的內容設置職位描述:

if (env.BRANCH_NAME.startsWith('PR')) { 
def resp = httpRequest url: "https://api.github.com/repos/xxx/yyy/pulls/${env.BRANCH_NAME.substring(3)}" 
    def ttl = getTitle(resp) 
    def itm = getItem(env.BRANCH_NAME) 
    itm.setDisplayName("PR '${ttl}'") 
} 
} 

@NonCPS 
def getItem(branchName) { 
    Jenkins.instance.getItemByFullName("sonar-openedge/${branchName}") 
} 

@NonCPS 
def getTitle(json) { 
    def slurper = new groovy.json.JsonSlurper() 
    def jsonObject = slurper.parseText(json.content) 
    jsonObject.title 
} 

這使得其從作業總覽頁面可直接職位描述(如本例:https://ci.rssw.eu/job/sonar-openedge/

的完整的提交和Jenkinsfile都可以在這裏: https://github.com/Riverside-Software/sonar-openedge/commit/e2c76ca58b812e4ceac65c406f0b2aae9fbf3f5f

+0

也是itm.setDescription(...)的作品。 (只是不要調用itm.save()) – Akom

相關問題