2
我試圖將我的腳本管道轉換爲聲明性管道並在一些基本(我認爲)問題中運行。在Jenkins中使用聲明性管道步驟在並行步驟中分配變量
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
environment {
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
steps {
....
}
}
)
}
}
這將導致以下異常:
WorkflowScript: 197: Expected a step @ line 197, column 29.
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName} ", returnStdout: true).trim()
因爲我不能做一個steps {}
塊內部變量分配,我把它移動到environment {}
塊,但似乎沒有不也做伎倆。
有關如何設置這些變量的任何想法?
感謝您的回答,請儘快嘗試。 這是故意的嗎?我猜這是與if語句相同(似乎無法在'steps'中使用這些語句)。無論是以這種方式設計(以及爲什麼),還是僅僅是一個即將到來的功能,都無法真正找到任何文檔。 –
是的,認爲這是故意的,即有一個原因是他們已經添加了「腳本」步驟。如果你看這裏,https://jenkins.io/doc/book/pipeline/syntax/#declarative-steps,這裏有一些推理。我認爲這個「限制」的主要原因是他們添加了聲明性管道的圖形編輯,因此'steps'部分內必須有一組有限的構造。 –