如何在 Jenkins 2 多分支管道中添加职位描述?
How can I add job description in Jenkins 2 multi-branch pipeline?
我在 Jenkins 2 中有一个多分支管道作业,连接到 GitHub 存储库(可用 here)。 GitHub 存储库中的每个拉取请求都会在 Jenkins 中创建一个新的 "job",但作业会从拉取请求编号继承其名称(即作业称为 PR-1、PR-2 等)这在詹金斯语境中毫无意义。
是否可以(以及如何)配置作业或 Jenkinsfile 以向每个拉取请求添加作业描述?
以下是我如何根据拉取请求的内容设置职位描述:
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
我在 Jenkins 2 中有一个多分支管道作业,连接到 GitHub 存储库(可用 here)。 GitHub 存储库中的每个拉取请求都会在 Jenkins 中创建一个新的 "job",但作业会从拉取请求编号继承其名称(即作业称为 PR-1、PR-2 等)这在詹金斯语境中毫无意义。 是否可以(以及如何)配置作业或 Jenkinsfile 以向每个拉取请求添加作业描述?
以下是我如何根据拉取请求的内容设置职位描述:
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