我有一个Windows 7和一个Windows 2012从服务器与Jenkins代理和Cygwin已经设置。我想避免Cygwin,只使用Git for Windows附带的Git Bash shell (我认为它被称为msysgit)。因此,我将C:\cygwin64重命名为C:\cygwin64.bak,从路径中删除C:\cygwin64\bin,并重新启动。
Windows2012框现在运行良好,运行(Unix)外壳脚本、$OSTYPE = msys和uname = MSYS_NT-6.3 (指示Git正在运行)。
Windows 7框不会运行任何内容,并给出以下错误:
在工作区C:\User\Jenkins\ win7 \TEST中远程构建 C:\Users\jenkins\AppData\Local\Temp\hudson5047939025129374618.sh win7 $ sh -xe 系统找不到指定的文件。 致命:命令执行失败 java.io.IOException:无法运行程序"sh“(目录”C:\Users\Jenkins\工作区\TEST“):CreateProcess error=2,系统找不到指定的文件。 成本-成本-在java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)的比较
因此,我的问题是,如何配置Jenkins来使用C:\Program Files\Git\bin\sh.exe,或者如何配置C:\Program Files\Git\usr\bin\bash.exe来运行shell脚本?
发布于 2016-01-27 18:51:47
我已经想好了。Jenkins将简单地选择路径中的第一个sh.exe。Git在C:\Program Files\Git\usr\bin上有一个exe,所以如果将它添加到路径的开头,它将被Jenkins捕获。
在进行此更改后,必须重新启动奴隶与Jenkins的连接,否则路径将不会传播。如果您正在使用,只需关闭Java窗口并重新启动它。
发布于 2016-10-06 13:20:52
如果您只有Windows代理,并且它们都安装了Git for Windows,那么您可以在Jenkins系统配置中为所有代理设置shell可执行文件。
转到Manage Jenkins > Configure ,向下滚动到 shell ,并将Shell可执行文件设置为指向您希望从执行shell构建步骤开始的任何shell。
下面是一个如何设置与一起安装的shell的示例:

注意:如果您混合了Windows和非Windows代理(詹金斯-38211),这是行不通的。如果您有Windows,将sh.exe安装到不同的位置(例如使用这些平台的默认安装位置将32位和64位Windows混合在一起),这将导致类似的问题。仅当您的环境只包含配置相同的Windows节点时才使用此方法。
发布于 2020-08-28 12:42:24
安装git-bash
确保Git\bin文件夹(即: C:\Program \Git\bin)位于全局搜索路径中,以便Jenkins找到sh.exe
若要更新windows中的路径,请使用以下命令
setx路径"% path %;C:\Program \Git\bin“
或者看看这里,https://www.windows-commandline.com/set-path-command-line/
使Jenkins可以使用nohup
现在您可以运行shell命令了
玩得开心
https://stackoverflow.com/questions/35043665
复制相似问题