我正在执行此代码:
node('my_windows_slave') {
sh 'ls'
}
在我的Windows奴隶中,我可以正确执行sh
命令:
但是管道脚本无法运行.sh
文件:
[Pipeline] sh
[D:\workspace\sandbox_pipeline] Running shell script
sh: D:\workspace\sandbox_pipeline@tmp\durable-2d7dd2f8\script.sh: command not found
我注意到的是,一旦我尝试使用.sh
并且处以罚款,这个bat
文件甚至都没有创建。
有任何疑问可能是什么问题?
[UPDATE]
詹金斯不知何故无法创建SH
临时文件。已经检查了日志,权限,以及我想到的一切。
答案 0 :(得分:7)
我会在批准之前留下我的解决方案作为答案,一旦我仍然不能100%确定根本原因,并且其他人可能会出现一个优雅的解决方案......
def shell(command) {
return bat(returnStdout: true, script: "sh -x -c \"${command}\"").trim()
}
<强>注意强>
您仍然在SH
中执行CMD
命令,这意味着某些%d
可能会破坏您的SH
命令。
答案 1 :(得分:1)
如Jenkins的docs所述,您应该使用 bat
步骤代替sh
。