簡體   English   中英

如何在詹金斯共享庫中獲取分支名稱

[英]How to get branch name in jenkins shared library

我正在嘗試編寫我的第一個Jenkins共享庫,並且正在嘗試一些基本的工作-獲取分支名稱。

我可以做:

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

但是,這需要簽出。 是否可以獲得分支名稱(對於多分支和自由樣式)管道項目? 我知道我將使用git,但我想避免進行結帳(除非有必要)。

GIT_BRANCH環境變量應為您提供所需的內容。 直到Jenkins 2.60和升級的管道模型定義插件,它才能在管道中工作。

如果您正在使用管道作業,則可以

  • 捕獲從scm簽出返回的對象
  • 參考環境變量

pipeline {
    // ...
    stages {
        stage('Setup') {
            steps {
                script {
                    // capture scm variables
                    def scmVars = checkout scm
                    String branch = scmVars.GIT_BRANCH

                    // or use the environment variable
                    branch = env.GIT_BRANCH
                }
            }
        }
        // ...
    }
}

環境變量參考。

我最終使用了這個:

 env.CHANGE_BRANCH ?: env.GIT_BRANCH ?: scm.branches[0]?.name?.split('/')[1] ?: 'UNKNOWN'

但是,這需要我In-Script Approvals頁面中批准幾件事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM