我已经将我所有的 Jenkins 逻辑放在了一个结构化的管道脚本(又名 Jenkinsfile)中。
如果出现问题,我会发送邮件。对于这个主题,我想使用displayName
工作而不是工作 id env.JOB_NAME
(因为它们是由访问控制模式驱动的,而不是可读性)。
我可以使用正常的管道作业,currentBuild.rawBuild.project.displayName
但对于多分支管道,这只是分支名称。
还是有更好的方法来获取用户友好的名称,然后遍历 rawBuild?
我已经将我所有的 Jenkins 逻辑放在了一个结构化的管道脚本(又名 Jenkinsfile)中。
如果出现问题,我会发送邮件。对于这个主题,我想使用displayName
工作而不是工作 id env.JOB_NAME
(因为它们是由访问控制模式驱动的,而不是可读性)。
我可以使用正常的管道作业,currentBuild.rawBuild.project.displayName
但对于多分支管道,这只是分支名称。
还是有更好的方法来获取用户友好的名称,然后遍历 rawBuild?
现在我发现没有方便的公共 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
}
}
我使用currentBuild.fullProjectName
which 设置为multibranch_pipeline_name/branch_name
或pipeline_name
取决于您使用的是多分支管道还是普通管道。