Jenkins无法识别$ {GIT_BRANCH}

时间:2017-02-09 12:43:00

标签: git jenkins groovy jenkins-pipeline

我有一个使用变量${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}"

我得到了同样的错误。

我不明白,为什么在使用管道时无法识别变量,但是否则会被识别?

2 个答案:

答案 0 :(得分:0)

它似乎是一个已知的错误,我看到它的工作,更新发生它停止工作,我厌倦了它,并开始自己设置它。

def branch = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()

答案 1 :(得分:0)

您可以定义scm变量并将其附加到结帐中,例如:

scm: ... 
checkout scm: scm

然后您可以从scm变量访问许多属性,包括分支信息。