我们正在移植Jenkins管道以在Windows环境中工作。
Jenkins的主人使用Cygwin sshd连接到我们的Windows远程名称winremote
。
如this page所述,节点的Remote root directory
作为普通的Windows路径给出(在这种情况下,它被设置为 C:\ cygwin64 \ home \ jenkins \ jenkins-slave- DIR )
这个最小的管道示例:
node("winremote")
{
echo "Entering Windows remote"
sh "ls -l"
}
因错误而失败:
[Pipeline] echo
Entering Windows rmeote
[Pipeline] sh
[C:\cygwin64\home\jenkins\jenkins-slave-dir\workspace\proto-platforms] Running shell script
sh: C:\cygwin64\home\jenkins\jenkins-slave-dir\workspace\proto-platforms@tmp\durable-a739272f\script.sh: command not found
通过SSH连接到Windows远程,我能够看到Jenkins在workspace
中实际创建了C:\cygwin64\home\jenkins\jenkins-slave-dir
子目录,但它是空的。
是否有一种已知的方法可以在这样的遥控器上使用sh
管道步骤?
答案 0 :(得分:0)
在此问题后几个小时合并的PR from blatinville解决了第一个问题。 遗憾的是,它引入了另一个问题,在故障单JENKINS-41225中描述,错误:
nohup: failed to run command 'sh': No such file or directory
此问题有PR for a quickfix提议。
然后,持久性任务插件如何使用' ps',another PR fixing it评估任务是否仍然存在,这是最后一个问题。
在应用这些(或等效的)修补程序之前,可以使用以下命令编译Cygwin兼容的持久任务插件:
git clone https://github.com/Adnn/durable-task-plugin.git -b cygwin_fixes
cd durable-task-plugin/
mvn clean install -DskipTests
其中特别生成 target / durable-task.hpi 文件,该文件可用于替换Jenkins在其 durable-task.jpi 文件>插件文件夹。然后需要重新启动Jenkins。