我正在尝试将我的脚本化管道转换为声明性管道。想知道如何在一个steps {}
块中做一个简单的 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 {}
块内做一个简单的事情,关于如何做到这一点的任何想法?
用 a 把它变成一个完整的阶段似乎没有意义when {}
,因为在一个简单的阶段会发生更多的步骤(如果存在,则启动一个停止的容器等)。
做一个简单的 if 的最佳方法是什么?