在 jenkins slave 上使用 gradle git 插件获取 git 分支名称

Get git branch name with gradle git plugin on jenkins slave

我正在进行声纳集成,想将 git 分支作为参数传递。在 Jenkins 服务器上它将是 运行。

在我使用下一行代码获取当前 git 分支之前:

def workingBranch = """git rev-parse --abbrev-ref HEAD""".execute().text.trim()

我将其替换为:

grgit.branch.current.fullName

但这总是给我 "HEAD"。如何实现相同的功能?

我正在做一些非常相似的事情。事实证明,Jenkins 中的 Git 插件以多种方式进行了调整,以最大限度地减少 git 克隆和检出。我发现有两种方法可以解决这个问题。

  1. 简单的方法

    使用 Jenkins 的 built-in 环境变量,正如您在评论中所建议的那样。

def workingBranch = System.getenv("GIT_BRANCH") ?: grgit.branch.current.fullName

  1. 作业配置方式

    您还可以将作业设置为将分支签出为本地分支,而不是分离的 HEAD。这是在“其他行为”下,名为“签出到特定的本地分支”。还有许多其他问题详细说明了设置,and/or 声明式管道方法,具体取决于您的需要。

  • Configuring local branch option