首页/开发/CI/CD 与发布速查/GitLab CI default 全局配置
工具链要点63 条

GitLab CI default 全局配置

用 default 集中声明 image、before_script、cache、tags 等公共项:减少重复声明,但一次变更会影响所有作业。

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

default 块是什么

default 是 GitLab CI 的全局配置块:集中声明 image、before_script、cache、tags 等公共项,减少每个作业的重复声明。它面向全局默认,一次变更影响所有未覆盖它的作业;extends 则面向模板继承。用 default 收敛重复配置很划算,但改动前要在个别作业试点,全量回滚只能靠提交回退。

基本信息

支持键image、services、before_script、cache、tags、retry 等
覆盖作业内声明覆盖 default 值
对比extends 面向模板继承,default 面向全局默认
影响全局生效,变更需谨慎
回滚靠提交回退,先试点再全量
适用同构作业多、公共配置重复的仓库
排查作业行为异常先看 default 与作业级覆盖顺序
变更流程全局项修改单独提合并请求,说明影响范围

全局默认示例

全局默认示例
default:
  image: registry.example.com/ci-base:1.9  # 全局基础镜像
  before_script:
    - source ci/env.sh  # 每作业前置
  tags: [docker]  # 默认 Runner 标签

build:
  script: make build  # 沿用 default 配置

典型使用场景

  • 收敛重复:几十个作业不再各自写镜像与前置脚本
  • 基础镜像升级:改一处全局生效,先试点再推广
  • Runner 选型:统一标签让作业落到同一执行池
  • 缓存策略:全局缓存键规则,作业可覆盖
  • 分级配置:default 管全局,extends 管模板,作业管特例
  • 排查:作业行为异常时先看 default 与覆盖顺序
  • 影响评估:改动全局项前先列出受影响的作业清单

配置项与影响

配置全局影响覆盖方式
image所有作业基础环境作业内 image 覆盖
before_script每作业前置命令作业内声明替换
cache缓存键与路径作业内 cache 覆盖
tags作业调度目标作业内 tags 覆盖
retry失败重试策略作业内 retry 覆盖
基础镜像升级先在一两个作业试点,再提升为 default 版本。
直接改 default 镜像:全部流水线同时受影响,回滚只能靠提交回退。
before_script 承担重初始化:每作业重复耗时,慢操作应固化进基础镜像。
default 与 extends 用途别混:模板继承场景用 extends,全局默认才用 default。
大型仓库按目录拆分文件:全部塞进一个配置时,默认与覆盖关系会越来越难维护。

易错点

  • 直接改 default 镜像:全部流水线同时受影响。
  • before_script 承担重初始化:每作业重复耗时。
  • 混淆 default 与 extends 用途:模板继承场景硬塞全局配置。
  • tags 全局统一:特殊作业找不到对应 Runner 而排队。
  • 升级缺少回退方案:出问题只能回退提交。

数据来源与参考

  • GitLab Docs《CI/CD YAML syntax reference》(default)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌