You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Jenkins声明式流水线的input阶段仅在master分支执行且非主分支跳过?

解决Jenkins声明式流水线分支判断与手动确认的问题

你的问题根源在于Jenkins声明式流水线的执行顺序:当input作为stage的顶级指令时,它会在when条件判断之前运行。也就是说,不管当前是不是master分支,Jenkins都会先触发手动确认的暂停,之后才去检查分支条件——这就导致所有分支都卡在了input步骤,完全偏离了你的预期。

要实现「仅master分支触发手动确认,其他分支直接跳过」的效果,你只需要把input移到steps块内部即可。这样when条件会先执行,只有满足分支要求时才会进入stage并执行input确认,非master分支会直接跳过整个stage。

修改后的流水线配置如下:

stage('Deploy to prod') {
  when {
    branch 'master'
  }
  agent any
  steps {
    input {
      message "Deploy to prod?"
      ok "Deploy"
    }
    // 在这里添加你的生产环境部署步骤
    // 示例:sh './deploy-prod.sh'
  }
}

如果你的流水线是多分支流水线,还可以用更精确的分支匹配(比如匹配origin/master),不过上面的写法已经能满足基础需求。

内容的提问来源于stack exchange,提问作者Matt R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:39:51