gpt4 book ai didi

jenkins - 如何在 Jenkins 的声明性管道中执行简单的 if 语句

转载 作者:行者123 更新时间:2023-12-02 04:51:54 26 4
gpt4 key购买 nike

我正在尝试将脚本化管道转换为声明式管道。想知道如何在 steps {} block 内执行简单的 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()) {

由于我不允许在 steps {} block 内执行简单的 if(..) 操作,因此知道如何执行此操作吗?

使用 when {} 使其成为一个完整的阶段似乎没有意义,因为在一个简单的阶段中会发生更多步骤(启动已停止的容器(如果存在),等)。

执行简单 if 的最佳方法是什么?

最佳答案

这应该有效

pipeline {
stages {
stage ('Main Stage') {
steps {
script {
if (true) {
stage ('Stage 1') {
sh 'echo Stage 1'
}
}
if (false) {
stage ('Stage 2') {
sh 'echo Stage 2'
}
}
}
}
}
}
}

关于jenkins - 如何在 Jenkins 的声明性管道中执行简单的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42281200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com