4

我正在做声纳集成,并希望将 git branch 作为参数传递。它将在 Jenkins 服务器上运行。

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

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

在我将其替换为:

grgit.branch.current.fullName

但这总是给我“头”。如何实现相同的功能?

4

1 回答 1

2

我正在做一些非常相似的事情。事实证明,Jenkins 中的 Git 插件通过多种方式进行了调整,以最小化 git clone 和 checkout。我发现有两种方法可以解决这个问题。

  1. 简单的方法

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

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

  1. 作业配置方式

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

于 2020-10-27T18:38:21.373 回答