5

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

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

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

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

4

2 回答 2

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
    }
}
于 2017-04-28T08:52:09.200 回答
0

我使用currentBuild.fullProjectNamewhich 设置为multibranch_pipeline_name/branch_namepipeline_name取决于您使用的是多分支管道还是普通管道。

于 2020-10-01T17:24:43.440 回答