如何获取Jenkins Multibranch管道作业的displayName

时间:2017-04-26 15:51:14

标签: jenkins jenkins-pipeline multibranch-pipeline

我已将所有Jenkins逻辑放在结构化管道脚本(又名Jenkinsfile)中。

如果出现问题,我会发送邮件。对于主题,我想使用作业的displayName而不是作业ID env.JOB_NAME(因为它们是由访问控制模式驱动而不是可读性)。

使用正常的管道作业我可以使用currentBuild.rawBuild.project.displayName但是对于多分支管道,这只是分支名称。

或者是否有更好的方法来获取用户友好名称,然后遍历rawBuild?

2 个答案:

答案 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_namepipeline_name,具体取决于您使用的是多分支管道还是普通管道。