首页/开发/CI/CD 与发布速查/GitLab 流水线计划(Schedules)
工具链要点63 条

GitLab 流水线计划(Schedules)

定时触发流水线:按 cron 配置周期并附带计划变量,常用于夜间构建、定时部署与巡检任务。

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

流水线计划是什么

定时触发流水线:在项目 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 限定触发来源,避免同一套作业被重复执行、指标被污染。
计划失败无人看:接入通知并纳入例行巡检,否则静默失败可能持续数周才被发现。

易错点

  • 时区按直觉理解:跨时区团队排期整体偏移,夜里跑的任务跑到白天
  • 计划失败无人看:接入通知并纳入例行巡检
  • 没有 rules 限制触发源:推送与计划叠加,重复消耗算力
  • 把计划当唯一触发入口:错过窗口只能等下个周期,重要任务要保留手动补跑通道

数据来源与参考

  • GitLab Docs《Pipeline schedules》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌