我有一个使用变量${GIT_BRANCH}
的Jenkins作业,它运行正常。
我尝试使用Jenkins管道而不是Job。
我有以下脚本:
node {
checkout([$class: 'GitSCM', branch: [[name: '*feature/myProject*']], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'jgit', submoduleCfg: [], userRemoteConfigs: [[creadentialsId: 'XXXX', url: 'git@myrepo.com/myProject.git']]])
echo "${GIT_BRANCH}"
}
为此,我得到:
groovy.lang.MissingPropertyException: No such property: GIT_BRANCH for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java: 63)
如果我将最后一行更改为:
echo "${env.GIT_BRANCH}"
我得到了同样的错误。
我不明白,为什么在使用管道时无法识别变量,但是否则会被识别?
答案 0 :(得分:0)
它似乎是一个已知的错误,我看到它的工作,更新发生它停止工作,我厌倦了它,并开始自己设置它。
def branch = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()
答案 1 :(得分:0)
您可以定义scm变量并将其附加到结帐中,例如:
scm: ...
checkout scm: scm
然后您可以从scm
变量访问许多属性,包括分支信息。