[英]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.