流水线计划是什么
定时触发流水线:在项目 CI/CD → Schedules 中按 cron 配置周期并附带计划级变量,常用于夜间构建、定时部署与巡检清理任务。同一项目可以建多条计划:用计划变量区分环境与任务类型,比复制多份配置更容易维护。触发来源在流水线里表现为 CI_PIPELINE_SOURCE 等于 schedule,要用 rules 限定触发源,避免与推送流水线叠加重复执行。
基本信息
| 触发标识 | $CI_PIPELINE_SOURCE == 'schedule' |
|---|---|
| 配置位置 | 项目 CI/CD 页面 → Schedules 列表 |
| 变量 | 每条计划一套变量,随触发注入 |
| 多条计划 | 同项目可并存,各自独立配置变量 |
| 时间格式 | 5 段式 cron:分 时 日 月 周 |
| 时区 | 计划设置里可选择;旧版本按服务器时区解释 |
典型使用场景
- 夜间构建:固定时间跑全量测试与静态检查,不挤占白天算力
- 定时部署:把预发环境每天刷新到主干最新版本
- 巡检任务:周期性检查证书、依赖与配置漂移
- 数据类任务:定期导出、清理或对账
- 发布日历联动:把计划窗口与变更冻结期错开,避免定时任务撞上发布窗口
- 补跑入口:临时需要时用界面上的立即运行按钮手动补跑
夜间流水线
夜间流水线
nightly:
stage: test
script:
- make test-nightly # 全量夜间测试
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"' # 仅计划触发时运行计划配置要素
| 要素 | 说明 | 注意 |
|---|---|---|
| cron 表达式 | 5 段式:分 时 日 月 周 | 跨时区团队先换算再排期 |
| 时区选择 | 计划级设置项 | 升级后核对旧计划的解释方式 |
| 目标分支 | 计划触发的 ref | 指向受保护分支时需要权限 |
| 计划变量 | 随触发注入流水线 | 使用时与项目变量区分 |
| 立即运行 | 界面手动触发一次 | 用于补跑与验证配置 |
计划变量适合放环境名与开关这类参数:把「跑什么」参数化,避免为每个变体复制一条计划。
计划流水线与推送流水线可能叠加:用 rules 限定触发来源,避免同一套作业被重复执行、指标被污染。
计划失败无人看:接入通知并纳入例行巡检,否则静默失败可能持续数周才被发现。