我的一位客户有一些自由式 Jenkins 作业,这些作业显示 "#${BUILD_NUMBER}|${BRANCH_NAME}"
在作业的描述或显示名称中使用名为“Build Name Setter”的插件。
不幸的是,这个插件只能在自由式作业中正常工作。
我尝试在 checkout 步骤之后添加以下行:
currentBuild.displayName = "#${BUILD_NUMBER}|${BRANCH_NAME}"
但我收到“BRANCH_NAME”未设置的错误。
我必须使用“SCM 步骤”而不是专用插件,因为我正在克隆的存储库是一个 TFS-Git 存储库,它的插件没有此功能。
这是 SCM 步骤行为中的一个已知问题,特别是在管道作业中,但我想知道你们中是否有人找到了我可以实现的任何解决方法以在作业页面中显示此信息。
最佳答案
我通过做一些非常接近@haschibaschi 建议的事情来解决它,但在我的例子中,我将 BRANCH_NAME 写入工作区中的常规文件并将其加载到 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}"
}
关于windows - 如何将自定义 displayName 设置为 Jenkins 管道作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44110119/