Jenkins声明性管道-仅在满足条件时如何添加输入步骤

时间:2020-03-24 12:02:28

标签: jenkins jenkins-pipeline

我的管道中有一个输入阶段,只有在满足特定条件的情况下,我才希望运行该阶段。

    stage ('input stage') {
        agent none
        when {
            expression {
                condition1 == "YES"
            }
        }
        input {
            message 'Proceed with this step?'
            submitter "${approvers}"
        }
        steps {
            echo "Proceeding with step..."
        }
    }

但是,即使不符合条件,输入阶段似乎也要等待提交者的批准。

我假设这对于带有输入的阶段是可能的。上面的代码块有问题吗?

谢谢。

1 个答案:

答案 0 :(得分:4)

没有“问题”,这只是声明性管道的input directive的工作方式(强调我的意思):

舞台上的input指令允许您使用以下命令提示输入 输入步骤。在选择了任何选项之后,舞台将暂停 应用,然后之前进入该阶段的座席区,或者 评估阶段的时间条件。如果输入得到批准, 然后该阶段将继续。

要在when之前检查input的状况,请将input转到步骤:

stage ('input stage') {
    agent none
    when {
        expression {
            condition1 == "YES"
        }
    }
    steps {
        input message: 'Proceed with this step?', submitter: "${approvers}"
        echo "Proceeding with step..."
    }
}