一尘不染

在Jenkins中更改Windows Shell(从Cygwin到Git Bash / msys)

jenkins

我有一个装有Jenkins代理和Cygwin的Windows 7和Windows Server
2012从属服务器。我想避免使用Cygwin,而只使用Windows的Git随附的Git
Bash外壳程序(我认为它称为msysgit)。因此,我将重命名C:\cygwin64C:\cygwin64.bakC:\cygwin64\bin从路径中删除,然后重新启动。

Windows 2012框现在可以正常工作,运行(Unix)Shell脚本$OSTYPE = msys,和uname = MSYS_NT-6.3(指示Git Bash Shell正在运行)。

Windows 7框将不运行任何内容,并出现以下错误:

在工作空间C:\ Users \ Jenkins \ workspace \ TEST
[win7]中的win7上远程构建$ sh -xe C:\ Users \ jenkins \ AppData \ Local \ Temp \
hudson5047939025129374618.sh
系统找不到指定的文件
致命:命令执行失败的
java.io.IOException:无法运行程序“ sh”(在目录“ C:\ Users \ Jenkins \ workspace \
TEST”中):CreateProcess
错误= 2,系统找不到指定的文件。
在java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)

所以我的问题是,如何配置Jenkins使用C:\Program Files\Git\bin\sh.exeC:\Program Files\Git\usr\bin\bash.exe运行Shell脚本?


阅读 753

收藏
2020-07-25

共1个答案

一尘不染

我已经解决了。詹金斯将只选择路径中的第一个sh.exe。Git Bash在处有一个exe C:\Program Files\Git\usr\bin,因此,如果将其添加到路径的开头,它将由Jenkins提取。

进行此更改后,您必须重新启动从属与Jenkins的连接,否则路径将不会传播。如果您使用的是Java Web Start,只需关闭Java窗口并重新启动它。

2020-07-25