【问题标题】:How can I add job description in Jenkins 2 multi-branch pipeline?如何在 Jenkins 2 多分支管道中添加职位描述?
【发布时间】:2017-04-04 02:12:49
【问题描述】:

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

【问题讨论】:

  • 不完全是我想要的,但让我走上了正轨。使用Jenkins.instance.getItemByFullName("xxx/PR-zz").setDisplayName("Any description...") 只会更改显示名称。我将添加更多代码以便从 GitHub 获取拉取请求描述,并在此处更新答案。

标签: jenkins jenkins-pipeline


【解决方案1】:

这是我如何从拉取请求的内容中设置职位描述的:

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

【讨论】:

  • itm.setDescription(...) 也有效。 (只是不要调用 itm.save() )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多