我想要完成的工作 - 我想为 git 本身提供一个包装器,如果 git 命令失败(超时/网络问题),它将重试。
我有以下包装器的虚拟代码:
"C:\Program Files\Git\cmd\git.exe" %*
echo Success!
在更改 $PATH 并将文件另存为 git.cmd 并删除 git.exe 的路径后,如果我直接从 jenkins 调用任何 git 命令,它就会很好地工作:
script {
bat 'git clone %REPO%'
}
结果:
(...)
Updating files: 100% (5314/5314), done.
17:58:51 E:\jenkins\workspace\sandbox>echo Success!
17:58:51 Success!
但是我希望它适用于使用jenkins git 插件 https://github.com/jenkinsci/git-plugin/blob/master/README.adoc的多分支管道
使用此插件运行结帐会导致:
18:48:46 Caused by: java.io.IOException: Cannot run program "git" (in directory "E:\jenkins\workspace\PR-XXXX"): CreateProcess error=2, The system cannot find the file specified
不知何故 git 插件知道,它缺少 git.exe 并且它没有像第一个示例中那样拾取 git.cmd 包装脚本。有什么建议吗,伙计们?