如何在Windows Agent上从Jenkins Groovy执行git命令?

问题描述

Jenkins节点是Windows代理,已安装Git Bash。

我需要在已经设置为git文件夹的工作空间文件夹中执行git命令。由于git命令的简单性(例如'git branch'),我们不想创建一个完整的.sh文件,而是选择内联shell命令,如下所示。

//.groovy
dir ("c:/workspace/project@script/git-folder") {
  def git_cmd = sh(script: "git branch",returnStdout: true).trim()
}

上面的代码适用于我们的其他Linux节点。但是,在此Windows节点上,Jenkins返回了Shell脚本错误“ c:/workspace/project@script/git-folder@tmp/durable-8xxxxx/script.sh:第1行:git:命令未找到”

为什么创建@tmp文件夹并在其中执行脚本而不是在预期的文件夹中执行脚本?我检查了代理,看起来“ git-folder”和“ git-folder @ tmp”都在c:/ workspace /中相邻

我试图删除“ dir”命令,然后将其cd插入脚本中的路径,如下所示:

def git_cmd = sh(script: "cd c:/workspace/project@script/git-folder; git branch",returnStdout: true).trim()

但现在错误“ c:/workspace/project@2@tmp/durable-6xxxxx/script.sh:第1行:git:未找到命令”

找到了一个与我的问题非常相似的Jenkins issue thread,但是没有一个明确的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)