簡體   English   中英

詹金斯管道sh步驟失敗

[英]Jenkins pipeline sh step fails

我正在學習Jenkins Pipelines,並且嘗試在Linux構建服務器上執行任何操作,但是由於無法創建文件夾而收到錯誤消息。

這是管道代碼

node('server') { 
    stage("Build-Release-Linux64-${NODE_NAME}") {   
        def ws = pwd()
        sh "ls -lha ${ws}"
    }
}

這是我得到的錯誤:

sh: 1: cannot create /opt/perforce/workspace/Dels-Testing-Area/MyStream-main@tmp/durable-07c26e68/pid; jsc=durable-8c9234a2eb6c2feded950bac03c8147a;JENKINS_SERVER_COOKIE=$jsc /opt/perforce/workspace/Dels-Testing-Area/MyStream-main@tmp/durable-07c26e68/script.sh: Directory nonexistent

我在服務器運行時檢查了服務器,可以看到它確實創建了文件“ /opt/perforce/workspace/Dels-Testing-Area/MyStream-main@tmp/durable-07c26e68/script.sh”

該文件包含以下內容,由Jenkins(而非我自己)創建:

#!/bin/sh -xe

嘗試使用sh步驟執行什么都沒有關系,我會遇到相同的錯誤。

誰能闡明為什么會這樣?

-=更新=-

我當前正在使用Jenkins 2.46.2 LTS,並且有許多可用的更新。 我要等待相當長的一段時間,然后執行完整的更新,然后再試一次以防萬一。

我發現問題是因為文件夾名稱中有一個單引號。 一旦我刪除了單引號,它就完美地運行了。 這也鏈接到Jenkins問題[ https://issues.jenkins-ci.org/browse/JENKINS-44341] ,我在其中添加了評論並投票決定要解決的問題。

因此,解決方法是,僅在文件夾和作業名稱[0-9a-zA-Z_-]中使用以下字符(不包括方括號),也不要使用空格。

我可以確認在文件夾配置的“顯示名稱”字段中使用特殊字符和空格可以正常工作。

暫無
暫無

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

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