2017-02-09 1 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 변수에서 속성을 많이 액세스 할 수 있습니다.

관련 문제