如何使Cygwin成为Jenkins的默认外壳?

5 cygwin build scons jenkins

我正在尝试为使用SCons编写的构建提供一些明智的解决方案,该解决方案依赖于许多应用程序,这些应用程序可以通过类Unix的方式,使用类Unix的路径等进行访问。但是,当我尝试要使用SCons插件或Jenkins中的Git插件,它会尝试使用类似的方法来调用这些插件cmd /c git.exe-这肯定会失败,因为Git是使用Cygwin安装的,并且仅在Cygwin shell中是已知的,而在CMD中却不是。但是,即使我可以将git和其余的内容提供给cmd.exe,也会出现其他问题:Cygwin版本的Git希望路径具有正斜杠,并将反斜杠视为转义字符。与Windows Windows文件系统相关的问题也随之而来(我无法授予Jenkins删除自己的文件的权限!)。

因此,有没有办法使Jenkins仅使用Cygwin Shell,而不使用cmd.exe?还是应该准备在VM中运行某些Linux来处理此问题?

Bra*_*ady 2

您可以配置 Jenkins 使用特定的 shell 命令执行 cygwin 命令,如下所示:

c:\cygwin\bin\mintty --hold always --exec /cygdrive/c/path/to/bash/script.sh
Run Code Online (Sandbox Code Playgroud)

其中script.sh将执行 Jenkins 执行所需的所有命令。