Get git branch name in Jenkins Pipeline/Jenkinsfile
Use multibranch pipeline job type, not the plain pipeline job type. The multibranch pipeline jobs do posess the environment variable env.BRANCH_NAME
which describes the branch.
In my script..
stage('Build') { node { echo 'Pulling...' + env.BRANCH_NAME checkout scm }}
Yields...
Pulling...master
If you have a jenkinsfile for your pipeline, check if you see at execution time your branch name in your environment variables.
You can print them with:
pipeline { agent any environment { DISABLE_AUTH = 'true' DB_ENGINE = 'sqlite' } stages { stage('Build') { steps { sh 'printenv' } } }}
However, PR 91 shows that the branch name is only set in certain pipeline configurations:
- Branch Conditional (see this groovy script)
- parallel branches pipeline (as seen by the OP)
A colleague told me to use scm.branches[0].name
and it worked. I wrapped it to a function in my Jenkinsfile:
def getGitBranchName() { return scm.branches[0].name}