我正在做声纳集成,并希望将 git branch 作为参数传递。它将在 Jenkins 服务器上运行。
在我使用下一行代码获取当前 git 分支之前:
def workingBranch = """git rev-parse --abbrev-ref HEAD""".execute().text.trim()
在我将其替换为:
grgit.branch.current.fullName
但这总是给我“头”。如何实现相同的功能?
我正在做一些非常相似的事情。事实证明,Jenkins 中的 Git 插件通过多种方式进行了调整,以最小化 git clone 和 checkout。我发现有两种方法可以解决这个问题。
简单的方法
正如您在评论中所建议的那样,使用 Jenkins 的内置环境变量。
def workingBranch = System.getenv("GIT_BRANCH") ?: grgit.branch.current.fullName
作业配置方式
您还可以将作业设置为将分支检出为本地分支,而不是分离的 HEAD。这是在“其他行为”下,名为“签出到特定的本地分支”。还有许多其他问题详细说明了该设置和/或声明性管道方法,具体取决于您的需求。