首页/开发/CI/CD 与发布速查/Jenkins options 构建选项
工具链要点63 条

Jenkins options 构建选项

流水线级统一配置:超时、禁用并发、保留构建数、时间戳等;把行为约束写进代码而不是靠约定。

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

options 是什么

流水线级统一配置:把超时、并发、保留策略、时间戳等行为约束写进代码,而不是靠约定与口头提醒。常用项包括 timeout(防止卡死)、disableConcurrentBuilds(保护共享环境)、buildDiscarder 与 logRotator(控制历史构建留存)、timestamps(日志自带时间)、retry(有限重试)。作用域可以放在流水线级 options,也可以放进阶段内只约束该阶段。

基本信息

常用项timeout、disableConcurrentBuilds、buildDiscarder、timestamps
作用域流水线级与阶段级均可声明
超时阶段级只约束该阶段;流水线级约束整体
保留buildDiscarder(logRotator) 控制历史构建与日志
重试retry(n) 对可重试的步骤做有限次重试
并发disableConcurrentBuilds 可配 abortPrevious 取代旧构建

典型使用场景

  • 卡死防护:所有流水线加全局超时,避免占用执行器过夜
  • 共享环境:同一测试环境上禁止并发构建,避免互相踩踏
  • 磁盘治理:限制历史构建保留数,日志与产物不无限增长
  • 远程排障:timestamps 让日志每行带时间,方便与外部系统对表
  • 易抖动步骤:上传制品、拉镜像等加 retry,减少假失败
  • 审批与部署:阶段级单独设置超时,比全局一刀切更精准
  • 制品治理:保留策略与制品归档分开配置,历史构建少留但制品照管

流水线选项

流水线选项
pipeline {
  agent any
  options {
    timeout(time: 1, unit: 'HOURS')   // 全局超时
    disableConcurrentBuilds(abortPrevious: true)   // 新构建取代旧构建
    buildDiscarder(logRotator(numToKeepStr: '20', daysToKeepStr: '14'))
    timestamps()   // 日志带时间戳
  }
  stages {
    stage('build') { steps { sh 'make build' } }
  }
}

选项速查

选项作用注意
timeout限制整体或阶段时长过紧会误杀正常慢构建
disableConcurrentBuilds禁止同流水线并发共享资源场景价值最大
buildDiscarder控制历史保留量与制品归档策略配合
timestamps日志每行带时间排障对表必备
retry失败自动重试只用于幂等步骤
阶段级 timeout 比全局更精准:审批、部署这类步骤单独设上限,其他阶段不受影响。
选项变更只影响后续构建:正在运行的构建沿用旧配置,修改超时与保留策略后要观察下一次运行。
不设超时会让卡死构建长期占用执行器;保留数不设限,历史构建与日志会把磁盘占满。

易错点

  • 不设超时:卡死构建长期占用执行器,还挤占并发槽位
  • 保留策略不设限:历史构建与日志膨胀占满磁盘
  • retry 用在非幂等步骤:重复执行造成双写与副作用
  • 共享环境上不禁止并发:两个构建同时操作同一环境,结果互相污染

数据来源与参考

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