我注意到两个不同的构建步骤:“执行shell”和“执行Windows批处理命令”。后者使用的是windows shell,当然这很糟糕......但前者使用的是什么shell?我注意到它是类似bash的,虽然转义有一些奇怪的属性(例如$ENVVAR
用单引号包装它。)
还有哪些工具可用?我注意到tar
可用,例如,即使我从未在该机器上安装它。 which tar
显示/usr/bin/tar
,而which zip
显示“没有拉入(/mingw64/bin:/usr/bin:/c/bin:/ ... windows paths ...
)”......但这些目录在哪里/ shell运行的环境是什么?
在Jenkins文件夹中搜索*.exe
时,未显示sh.exe
或tar.exe
,因此我不确定这些来自何处。
具体来说,指向文档的指针将不胜感激 - 我还没有找到任何。
答案 0 :(得分:0)
我发现one thread on Jenkins Users讨论了这个确切的问题。
简而言之:
sh
cmd
如果安装了MinGW,可以使用Shell执行。
来自资料来源:
两者都来自
Shell执行尝试在Windows上运行sh
,在非Windows上运行/bin/sh
(区别实际上是使用系统路径分隔符完成的)。这可以使用shebang进行更改(请参阅Shell.buildCommandLine
)
环境变量似乎是从Build本身(无论是什么)获取的,然后由当前构建变量,服务器的URL,当前工作空间等丰富。这非常复杂,无法从中查看代码本身。我发现other answers on SO解决了环境问题。