我已将所有Jenkins逻辑放在结构化管道脚本(又名Jenkinsfile)中。
如果出现问题,我会发送邮件。对于主题,我想使用作业的displayName
而不是作业ID env.JOB_NAME
(因为它们是由访问控制模式驱动而不是可读性)。
使用正常的管道作业我可以使用currentBuild.rawBuild.project.displayName
但是对于多分支管道,这只是分支名称。
或者是否有更好的方法来获取用户友好名称,然后遍历rawBuild?
答案 0 :(得分:7)
现在我发现没有方便的公共API,所以这似乎是要走的路:
String getDisplayName(currentBuild) {
def project = currentBuild.rawBuild.project
// for multibranch pipelines
if (project.parent instanceof WorkflowMultiBranchProject) {
return "${project.parent.displayName} (${project.displayName})"
} else {
// for all other projects
return project.displayName
}
}
答案 1 :(得分:0)
我使用的currentBuild.fullProjectName
设置为multibranch_pipeline_name/branch_name
或pipeline_name
,具体取决于您使用的是多分支管道还是普通管道。