如何将自定义displayName设置为Jenkins管道作业?

时间:2017-05-22 10:04:46

标签: windows git jenkins groovy jenkins-pipeline

我的一位客户有一些自由式Jenkins工作,显示"#${BUILD_NUMBER}|${BRANCH_NAME}" 在使用名为" Build Name Setter"的插件的作业的说明或displayName中。

不幸的是,这个插件只能在自由式作业中正常工作。

enter image description here 我希望通过Jenkins管道工作实现相同的目标。

我已尝试在结帐步骤之后添加以下行:

currentBuild.displayName = "#${BUILD_NUMBER}|${BRANCH_NAME}"

但我收到的错误是" BRANCH_NAME"没有设定。

我必须使用" SCM步骤"而不是专用的插件,因为我克隆的存储库是一个TFS-Git存储库,它的插件没有这个功能。

这是SCM步骤中已知的问题,特别是在管道作业中,但我想知道是否有人找到了我可以实现的任何解决方法,以在作业的页面中显示此信息。

3 个答案:

答案 0 :(得分:1)

我通过做一些非常接近@haschibaschi建议的事情解决了这个问题,但在我的案例中,我将BRANCH_NAME写入工作区中的groovy文件并将其加载到BRANCH_NAME变量中。

stage ('Checkout SCM') {
            checkout([$class: 'GitSCM', branches: [[name: '*/feature/*']], doGenerateSubmoduleConfigurations: false, extensions: [], url: 'http://TFS_SERVER:8080/tfs/DefaultCollection/PC_International/_git/project']]])
            bat """
                cd %workspace%
                set branch="git rev-parse --abbrev-ref HEAD"
                FOR /F "tokens=*" %%i IN (' %branch% ') DO SET BRANCH_NAME=%%i
                echo %BRANCH_NAME% > BRANCH_NAME.groovy
            """
            BRANCH_NAME = readFile('BRANCH_NAME.groovy')
            currentBuild.displayName = "# ${BUILD_NUMBER} | ${BRANCH_NAME}"
        } 

现在相关信息显示为构建的名称: enter image description here

答案 1 :(得分:0)

只需手动获取分支名称并将其分配给BRANCH_NAME。

这样的事情(没有验证代码):

var api = new BankApi()

答案 2 :(得分:0)

在Jenkins文件中,$ {env.BRANCH_NAME}应该有效。