在Jenkins从属节点上使用Gradle Git插件获取Git分支名称

4
我是一位有帮助的助手,以下是您需要翻译的内容:

我正在进行Sonar集成,并希望将Git分支作为参数传递。它将在Jenkins服务器上运行。

之前我使用下面的代码来获取当前的Git分支:

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

我用以下内容进行了替换:
grgit.branch.current.fullName

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

Eugen,你能解决这个问题吗? - Chakra Yadavalli
这种方式不可行。你应该使用Jenkins环境变量。 - Eugen Martynov
1
非常抱歉回复晚了,我刚刚偶然发现了这个问题。我不确定哪种方法更适合你的情况。但是,我希望这能帮到某些人。 - kevinmm
1个回答

2
我正在做非常相似的事情。事实证明,Jenkins中的Git插件在多个方面进行了调整,以最小化git克隆和检出。我发现有两种方法来处理这个问题。
1. 简单的方法:使用Jenkins内置的环境变量,就像你在评论中建议的那样。
def workingBranch = System.getenv("GIT_BRANCH") ?: grgit.branch.current.fullName 2. 作业配置方式:您还可以设置作业将分支作为本地分支而不是分离的HEAD检出。这在“附加行为”下命名为“检出到特定本地分支”。有许多其他问题详细说明了该设置,或者根据您的需求使用声明性管道方法。
Declarative Pipeline自定义检出 配置本地分支选项

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接