使用groovy脚本的Jenkins管道:执行sh命令时出错

问题描述 投票:0回答:1

我正在创建一个简单的terraform管道如下jenkins [安装在Windows上]似乎sh命令不起作用,我在我的系统中有git bash [即:C:\ Program Files \ Git \ bin]]在我的系统中并且有在环境变量中提供了路径,仍然出现如下错误:

java.io.IOException:CreateProcess error = 2,系统找不到指定的文件

造成:java.io.IOException:无法运行程序“nohup”(在目录“C:\ Users \ XYZ.jenkins \ workspace \ Pipe_Groovy”中):CreateProcess error = 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/'
            }
        }

请指教。

groovy sh jenkins-pipeline
1个回答
1
投票

您应该在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

© www.soinside.com 2019 - 2024. All rights reserved.