如何在Jenkins 2多分支管道中添加作业描述?

时间:2016-11-20 17:54:00

标签: jenkins jenkins-pipeline

我在Jenkins 2中有一个多分支管道作业,连接到GitHub存储库(可用here)。 GitHub存储库中的每个pull请求在Jenkins中创建一个新的“作业”,但作业从拉取请求号继承其名称(即作业称为PR-1,PR-2等),这在Jenkins中毫无意义上下文。 是否可能(以及如何)配置作业或Jenkinsfile以向每个拉取请求添加作业描述?

1 个答案:

答案 0 :(得分:3)

以下是我如何根据拉取请求的内容设置作业说明:

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/

完整提交和Jenkins文件可在此处获得: https://github.com/Riverside-Software/sonar-openedge/commit/e2c76ca58b812e4ceac65c406f0b2aae9fbf3f5f