我试图将我的脚本管道转换为声明式管道。 想知道如何在steps {}
块中做简单的if语句。如何在Jenkins的声明式管道中执行简单的if语句
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
environment {
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
steps {
if (containerId.isEmpty()) {
docker.image('some/image').run("--name ${fullDockerImageName}")
}
}
}
)
}
}
这将导致以下异常:
WorkflowScript: 201: Expected a step @ line 201, column 29.
if (containerId.isEmpty()) {
因为我不能做一个简单的if(..)
一个steps {}
块内,对任何想法如何做到这一点?
由于在简单的阶段中发生了更多的步骤(如果它存在等起始已停止的容器等),因此将其设置为when {}
的完整阶段似乎没有意义。
做一个简单的if的最佳方法是什么?
@ JON-S这是非常像我的其他问题(https://stackoverflow.com/questions/42277936/assigning-variables-in-a-parallel-step-using-declarative-pipeline-steps-in-jenki),但我想要记录非常常见的情况(if-statemen t和var-assignment),所以无论如何发布它。 也许你对此有不同的见解? –