首页/开发/CI/CD 与发布速查/Jenkins input 人工审批
工具链要点63 条

Jenkins input 人工审批

在流水线中途请求人工确认或收集输入:可限定提交者、设置确认文案与参数;必须配合超时避免无限等待。

CI/CD 与发布速查开发更新于 2026-10-13

input 是什么

在流水线中途请求人工确认或收集输入:可限定提交者、设置确认文案与参数,用于生产发布与高风险操作确认。等待期间会阻塞当前阶段,必须配合超时避免无限等待;提交者过滤只影响谁能点击按钮,不等于完整审批系统,审批记录仍要进审计链。它的价值在于把「人判断」这一步变成流水线里的显式节点,而不是散落在聊天里的口头确认。

基本信息

写法input(message, ok, submitter, parameters)
阻塞等待响应期间阻塞当前阶段
超时用 options timeout 包裹,超时即终止
场景生产发布、高风险操作、参数补录
权限submitter 限定可点击的用户或组
按钮文案ok 参数自定义确认按钮文字
记录审批要进审计链,与部署记录互相关联

典型使用场景

  • 生产发布确认:变更窗口内人工检查后放行
  • 高风险操作:数据修复、账户变更等需二次确认
  • 参数补录:运行时输入版本号或变更单号
  • 灰度放量确认:自动化验证通过后人工批准继续
  • 紧急通道:break-glass 流程中记录审批人与时间
  • 值班交接:夜间批次的发布交由值班人员确认
  • 超时演练:定期验证审批超时路径真的会终止而不是卡住

带超时的审批

带超时的审批
stage('approve') {
  options { timeout(time: 2, unit: 'HOURS') }   // 审批超时上限
  steps {
    input message: '确认发布到生产?', ok: '发布', submitter: 'release-team'
  }
}

要素与含义

要素含义注意
message提示文案写清楚影响与回退方式
submitter可批准的用户或组与发布职责对齐
ok确认按钮文字避免与取消混淆
parameters运行时收集输入值会进构建记录,勿采集敏感信息
超时超时后的处理行为终止或按策略安全回退
没有超时的 input 会长期阻塞:审批窗口要显式声明,超时行为要能安全终止或回退。
审批记录要进审计链:谁在何时批准了哪次发布,与部署记录关联,事后可查。
审批窗口设多长要与发布节奏匹配:太短来不及评审,太长等于没有约束。
input 收集的值会写进构建记录:密码类输入不要走这里,改用凭据绑定。

易错点

  • 审批者范围与职责不匹配:submitter 权限要对齐发布职责
  • input 放在占用资源的块内等待:长时间等待占用节点资源
  • 无超时:等待无限延长,执行器与流水线槽位被占死
  • 审批记录不落审计:事后无法证明谁批准了哪次发布
  • 把 input 当唯一审批系统:多级审批与合规留痕仍需要正式流程

数据来源与参考

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