2017-02-09 18 views
1

変数${GIT_BRANCH}を使用するJenkinsジョブがあり、正常に動作します。

ジョブの代わりにジェンキンスパイプラインを使用しようとしました。

私は以下のスクリプトいる

:、私はこのために

node { 

    checkout([$class: 'GitSCM', branch: [[name: '*feature/myProject*']], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'jgit', submoduleCfg: [], userRemoteConfigs: [[creadentialsId: 'XXXX', url: '[email protected]/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

現在、パイプラインジョブには存在しません。 [JENKINS-35230](https://issues.jenkins-ci.org/browse/JENKINS-35230)を参照してください。 – mkobit

答えて

0

パイプラインの既知のバグと思われます。私は動作していると見ています。アップデートが正常に機能しなくなってしまいました。疲れて、自分で設定し始めました。

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

このコマンドは、ブランチ名の代わりにHEADを返すことがあります。 – ExuLeGeek

+0

@omekaがコメントしたように、これは私のテストでHEADを返します。 – pat

0

あなたは、SCMの変数を定義し、そのようにあなたのチェックアウトにそれを追加することができます

scm: ... 
checkout scm: scm 

そして、あなたは、分岐情報を含む、scm変数からプロパティの多くにアクセスすることができます。

関連する問題