11

I have a Jenkins Pipeline job which is configured to checkout a git repo and a specific local branch.

How can i get the name of the local branch in my Jenkinsfile?

I tried to load the git jenkins plugin env properties but had no luck.

node { checkout scm echo "1 "+ env.GIT_LOCAL_BRANCH echo "2 "+ env.GIT_BRANCH } 

Both values are "null"

3 Answers 3

25

I found that I can capture the return value from checkout scm and use that to get the branch name (and other values)

 def scmVars node('api-sample-build') { stage('Clone source code') { scmVars = checkout scm // scmVars contains the following values // GIT_BRANCH=origin/mybranch // GIT_COMMIT=fc8279a107ebaf806f2e310fce15a7a54238eb71 // GIT_PREVIOUS_COMMIT=6f2e319a1fc82707ebaf800fce15a7a54238eb71 // GIT_PREVIOUS_SUCCESSFUL_COMMIT=310fce159a1fc82707ebaf806f2ea7a54238eb71 // GIT_URL=https://stash.someworkplace.com/scm/poc/api-sample.git } stage('test scope') { echo scmVars.GIT_BRANCH } } 

By defining the variable outside the node it is available in stages after the checkout.

Sign up to request clarification or add additional context in comments.

Comments

4

I'm now using the sh call to get the branch name. This requires at least version 2.4 of the Pipeline Nodes and Processes Plugin.

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

2 Comments

I've tried the same thing but I'm getting HEAD instead of the branch name... any ideas? I've tried other ways as git branch | grep * | cut ' ' -f but everything seems to return None or HEAD
@JavierPR You may be in a detached head state which won't work with this command. stackoverflow.com/questions/6059336 may help
1

You can use scm attributes to get the list of branches configured for your scm :

// List of all configured branches def allBranches = scm.branches // Only the first configured branch name def gitBranch = scm.branches[0].name 

2 Comments

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method hudson.plugins.git.GitSCM getBranches
@RicardoStuven You need to authorize that method signature in the scripts console.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.