首页/开发/CI/CD 与发布速查/Jenkins when 条件执行
工具链要点63 条

Jenkins when 条件执行

按分支、变更请求、环境或表达式决定阶段是否执行;配合 beforeAgent / beforeInput 控制条件求值时机,减少无谓节点占用。

CI/CD 与发布速查开发更新于 2026-10-12
条件branch、changeRequest、environment、expression
组合not / allOf / anyOf
时机beforeAgent true 提前求值
变更过滤changeset 按改动文件匹配

条件阶段

条件阶段
stage('deploy') {
  when {
    branch 'main'
    expression { params.DEPLOY == true }
  }
  steps { sh './deploy.sh' }
}
beforeAgent 让条件在分配节点前求值:大集群里能省下可观排队时间。

易错点

  • 条件本可提前判断却未开 beforeAgent:无谓占用执行器
  • changeRequest 只在多分支流水线有效:普通流水线里判断失效

数据来源与参考

  • Jenkins 手册《Pipeline Syntax》(when)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌