簡體   English   中英

Jenkins管道使用Groovy腳本:執行sh命令時出錯

[英]Jenkins pipeline using groovy script : Error while executing sh command

我在jenkins中為terraform創建一個簡單的管道,如下所示[安裝在Windows上]似乎sh命令無法正常工作,我的系統中有git bash [ie:C:\\ Program Files \\ Git \\ bin)],並且有在環境變量中提供的路徑,仍然出現如下錯誤:

java.io.IOException:CreateProcess錯誤= 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 Files\\Git\\usr\\bin到PATH(而不是C:\\Program Files\\Git\\bin )中,因此我的sh命令在兩種FreeStyle中均能正常工作和管道構建。

無需mklink。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM