Jenkins Pipeline-何时输入

时间:2018-07-13 12:30:21

标签: jenkins jenkins-pipeline

我创建了一个管道,该管道具有仅在开发分支上才应执行的阶段。该阶段还需要用户输入。为什么即使我在其他分支机构上,这些步骤仍会卡在用户输入上?当我提供输入内容时,它们会被正确跳过。

stage('Deploy to UAT') {
    when {
        branch 'develop'
        beforeAgent true
    }
    options {
        timeout(time: 5, unit: 'MINUTES') 
    }
    input {
        message "Deploy to UAT?"
        ok "Yes"
    }

    steps { echo "deploing!" }

}

BlueOceas的詹金斯版本为1.7.0·核心2.121.1·d7cda7a·2018年7月13日下午06:49

2 个答案:

答案 0 :(得分:1)

我最近遇到了类似的情况,偶然发现了 beforeInput 中的 when() 标志:

when {
    beforeInput true
    branch 'develop'
}

documentation 中,您可以找到更多信息:

<块引用>

默认情况下,如果定义了一个阶段,则不会在输入之前评估阶段的 when 条件。但是,这可以通过在 when 块中指定 beforeInput 选项来更改。如果 beforeInput 设置为 true,则将首先评估 when 条件,并且仅在 when 条件评估为 true 时才输入输入。

答案 1 :(得分:0)

我在设置过程中遇到了同样的问题。

看起来Jenkins管道正在评估when条件之前的输入。

如果有人有一个解决此问题的方法,直到它可以解决的时候,那将是很好的;)

https://issues.jenkins-ci.org/browse/JENKINS-50785