我正在为 terraform 创建一个简单的管道,如下所示在 jenkins[安装在 Windows 上] 似乎 sh 命令不起作用,我的系统中有 git bash[即:C:\Program Files\Git\bin(]在我的系统中,并在环境变量中提供了路径,仍然收到如下错误:
java.io.IOException:创建进程错误=2,系统找不到指定的文件
导致:java.io.IOException:无法运行程序"nohup"(在目录"C:\Users\XYZ.jenkins\workspace\Pipe_Groovy"中(:CreateProcess错误= 2,系统找不到指定的文件
参考代码:
pipeline {
agent {
node {
label 'master'
}
}
stages {
stage('terraform started') {
steps {
sh 'echo "Started...!" '
}
}
stage('git clone') {
steps {
sh 'sudo rm -r *;sudo git clone https://gist.github.com/XXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
}
}
stage('tfsvars create'){
steps {
sh 'sudo cp /home/ec2-user/vars.tf ./jenkins/'
}
}
请指教。
你应该在Windows上的Jenkins管道中使用bat
而不是sh
。以下是有关使用bat
的文档:
https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#-bat-%20windows%20batch%20script
即便如此,您可能也不需要nohup
.但是,如果您仍然需要nohup
,请考虑安装Cygwin。
有关相关的 Jenkins JIRA 问题,请参阅 https://issues.jenkins-ci.org/browse/JENKINS-33708。
使用 Windows 版本 2.16.2 的 Git,我能够将C:Program FilesGitusrbin
添加到 PATH 中(而不是C:Program FilesGitbin
(,因此我的 sh 命令适用于 FreeStyle 和 Pipeline 构建。
不需要mklink。