Get git branch name in Jenkins Pipeline/Jenkinsfile Get git branch name in Jenkins Pipeline/Jenkinsfile jenkins jenkins

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:


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}