首页/开发/CI/CD 与发布速查/GitLab CI 的 include 与 extends 复用
工具链要点63 条

GitLab CI 的 include 与 extends 复用

include 引入外部 YAML(本地文件、远程 URL、官方模板),extends 做配置继承:隐藏作业(. 开头)常作为被继承模板。

CI/CD 与发布速查开发更新于 2026-10-12
includelocal / remote / template / project
extends单继承或列表多继承,后者优先
隐藏作业以 . 开头不进入流水线,仅作模板
覆盖规则哈希深合并;数组整体替换

模板复用

模板复用
# .templates.yml
.defaults:
  image: registry.example.com/ci:1.9
  before_script: [setup.sh]

# .gitlab-ci.yml
include:
  - local: .templates.yml

build:
  extends: .defaults
  script: [make build]
官方提供了多种语言与场景的模板仓库:先查现有模板再自建,减少重复维护。

易错点

  • 数组键不合并:子作业覆盖父模板数组时会整体替换,不是追加
  • 远程 include 无版本固定:外部模板变更会直接影响所有分支流水线

数据来源与参考

  • GitLab Docs《Include》
  • GitLab Docs《extends》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌