我创建了一个管道,该管道具有仅在开发分支上才应执行的阶段。该阶段还需要用户输入。为什么即使我在其他分支机构上,这些步骤仍会卡在用户输入上?当我提供输入内容时,它们会被正确跳过。
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
答案 0 :(得分:1)
我最近遇到了类似的情况,偶然发现了 beforeInput
中的 when()
标志:
when {
beforeInput true
branch 'develop'
}
在 documentation 中,您可以找到更多信息:
<块引用>默认情况下,如果定义了一个阶段,则不会在输入之前评估阶段的 when 条件。但是,这可以通过在 when 块中指定 beforeInput 选项来更改。如果 beforeInput 设置为 true,则将首先评估 when 条件,并且仅在 when 条件评估为 true 时才输入输入。
答案 1 :(得分:0)
我在设置过程中遇到了同样的问题。
看起来Jenkins管道正在评估when条件之前的输入。
如果有人有一个解决此问题的方法,直到它可以解决的时候,那将是很好的;)