Declarative Pipeline で 自動Checkoutしたブランチ名を取得する

取得した値は環境変数 BUILD_BRANCH に登録する.

Jenkinsの設定画面

pipeline の場合

SCMの追加処理で “specific local branch” を追加する.

multi branch pipeline で Branch Sources に GitHubを使用している場合

Additional で “Check out to matching local branch” を追加する.

Jenkinsfile

最初のstageとして以下を追加

stage('pre setup'){
  steps{
    script{
      env.BUILD_BRANCH = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref @').trim()
    }
  }
}

泣き言

そもそも multi branch pipeline を使っている時は 環境変数 BRANCH_NAME に登録されているという話。
ただのpipelineで組んだらエラー吐いて何ぞそれ?になって悩んでみた。
上の方法だと、ローカルのブランチ名をリモートに追随させるために設定画面の方を触る必要があるけど、gitのコマンドラインあたりをなんとかしたらそこは必要なくなるかも。
いずれにしても、ワークスペースにcheckoutする必要があるので、Jenkinsfileのoptions 句で skipDefaultCheckout() が定義されていると無意味。