Jenkins Pipeline无法在Windows从属服务器

时间:2017-01-11 16:26:22

标签: windows jenkins jenkins-pipeline

我正在执行此代码:

node('my_windows_slave') {
   sh 'ls'
}

在我的Windows奴隶中,我可以正确执行sh命令:

enter image description here

但是管道脚本无法运行.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临时文件。已经检查了日志,权限,以及我想到的一切。

2 个答案:

答案 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