在jenkins管道中运行sh命令时,命令本身并不运行。
shell是我的PATH变量的一部分,因此cmd-prompt正在运行,但命令没有。
管道内代码:
sh "echo Hello World"
bat "echo Hello World"
结果:
[Pipeline] sh
Microsoft Windows [Version 10.0.18362.657]
(c) 2019 Microsoft Corporation. Alle rechten voorbehouden.
C:\Program Files (x86)\Jenkins\workspace\testCI>
[Pipeline] bat
C:\Program Files (x86)\Jenkins\workspace\testCI>echo Hello World
Hello World
如何让sh命令运行?我宁愿不依赖于bat,因为这个管道(和jenkins-workspace)将来会被转移到UNIX环境中
3条答案
按热度按时间h4cxqtbf1#
尝试安装git bash或cygwin。默认情况下,Sh和Bash可执行文件随它们一起提供。
可以在此处使用sh文件路径。
jogvjijk2#
由于它是一个Windows 10代理,我建议安装一个Linux子系统,因为你计划在未来迁移到一个类似的环境。但是,这需要您在该子系统中重新安装Jenkins,但它的行为将与任何其他UNIX系统一样,而无需配置和管理第三方软件,这些软件不能保证在Windows(使用Jenkins)上运行,因为它在UNIX系统上运行。
您可以在Linux子系统上安装一个新的Jenkins master,同时保持Windows master不变,然后在按照您想要的方式配置时迁移用户。
安装WSL
p8ekf7hl3#
我还遇到了jenkins管道中的sh命令导致异常的问题。我在Windows操作系统中使用Jenkins,下面的步骤解决了这个问题-
1.安装Git Bash
1.为“C:\Program Files\Git\bin”和“C:\Program Files\Git\usr\bin”设置环境变量PATH
1.重新启动Jenkins服务器
1.建立你的管道。
你应该很好地在Jenkins Pipeline中执行sh命令。