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'部分内必须有一组有限的构造。 –