簡體   English   中英

如何通過插件獲取當前分支名稱

[英]how to get current branch name through plugin

我需要在其中部署插件的項目的當前分支名稱,因此該插件的groovy類中當前分支名稱的代碼如下所示,

   def getCurrentGitBranch() {
        def gitBranch = "Unknown branch"
        try {
            def workingDir = new File(ProjectConfig.projectDir)
            def result = 'git rev-parse --abbrev-ref HEAD'.execute(null, workingDir)
            result.waitFor()
            if (result.exitValue() == 0) {
                gitBranch = result.text.trim()
            }
        } catch (Exception e) {
            throw new Exception("Problem occurred while fetching current branch name from git.")
        }
        log.info("Branch Name [ "+ gitBranch + "]")
        return gitBranch
    }

但是由於某種原因,當使用jenkins在雲上部署項目時,此函數返回HEAD而不是我要為其部署的項目的當前分支。

我在不同的場景下嘗試了很多,但是沒有運氣,如何確保使用的插件能夠獲取要進行部署的項目的當前分支。

出於任何原因,您都處於HEAD分離狀態。 (如果您不知道什么是分離的HEAD請閱讀本文 。)通常,如果您執行git checkout SHA-1類的操作,則您將處於這種狀態。 git checkout tag (以下是幾個示例)。

似乎詹金斯(Jenkins)以超然的頭腦結帳了代碼。 您可以轉到$JENKINS_HOME/workspace/YOUR_PROJECT並使用git status進行檢查。

要更正您的問題,您必須在Jenkins項目配置的SCM管理部分下將Additional Behaviours > Check out to a specific local branch添加Additional Behaviours > Check out to a specific local branch 閱讀以下鏈接可能對您有幫助: Jenkins Git插件已分離HEAD

暫無
暫無

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

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