[英]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.