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 比全局更精准:审批、部署这类步骤单独设上限,其他阶段不受影响。
选项变更只影响后续构建:正在运行的构建沿用旧配置,修改超时与保留策略后要观察下一次运行。
不设超时会让卡死构建长期占用执行器;保留数不设限,历史构建与日志会把磁盘占满。