![](/img/trans.png)
[英]How can I echo the value of a windows system variable inside Jenkins pipeline?
[英]How to access the BRANCH_NAME variable within a Jenkins pipeline running on Windows?
我写了一个 Jenkins 管道,它 git 克隆一个存储库,构建功能分支代码,如果一切都成功完成,它应该将分支合并到 master。
这是相关代码:
stage ('Merge to master') {
if(currentBuild.result == 'SUCCESS') {
bat """
cd %workspace%
echo "BRANCH_NAME: %BRANCH_NAME%"
echo "Env.BRANCH_NAME: %env.BRANCH_NAME%
git checkout master
REM git merge %GIT_BRANCH%
"""
}
}
负责克隆的代码:
stage ('Checkout SCM') { // This stage is responsible to clone the repository into Jenkins's workspace
checkout([$class: 'GitSCM', branches: [[name: '*/feature/*']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '99f978af-XXXX-XXXX-8147-2cf8f69ef864', url: 'http://TFS_SERVER:8080/tfs/DefaultCollection/PC_International/_git/repo-name']]])
}
我的问题是 BRANCH_NAME 变量似乎未设置,我尝试通过%BRANCH_NAME%
、 %env.BRANCH_NAME%
、 %GIT_BRANCH%
和%env.GIT_BRANCH%
访问它,但无济于事。
在 Jenkins 构建日志中,它看起来像这样:
C:\Program Files (x86)\Jenkins\workspace\Ensure>echo "BRANCH_NAME: "
"BRANCH_NAME: "
C:\Program Files (x86)\Jenkins\workspace\Ensure>echo "Env.BRANCH_NAME:
"Env.BRANCH_NAME:
C:\Program Files (x86)\Jenkins\workspace\Ensure>echo "GIT_BRANCH: "
"GIT_BRANCH: "
C:\Program Files (x86)\Jenkins\workspace\Ensure>echo "Env.GIT_BRANCH: env.GIT_BRANCH"
"Env.GIT_BRANCH: env.GIT_BRANCH"
知道我做错了什么吗?
您需要使用 Groovy 占位符 ${} 插入字符串值,即 ${env.BRANCH_NAME}
这将在执行批处理脚本之前用字符串文字替换变量。 %% 表示法用于插入 windows 环境变量,但 env.BRANCH_NAME 是 Jenkins 环境变量而不是 windows 环境变量。
这对我有用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.