You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI配置中include的local与template有什么区别

GitLab CI include 配置中local与template类型的差异

二者核心区别是引用的配置文件来源完全不同,具体差异如下:

  • 文件来源差异
    • local 类型引用的是当前项目自身仓库内存储的自定义CI配置文件,填写的路径是相对于仓库根目录的相对路径。示例里的unit-tests.gitlab-ci.yml、smoke-tests.gitlab-ci.yml就是项目开发者自己写了存在仓库里的单元测试、冒烟测试配置,你可以直接在仓库里编辑修改这些文件,只有当前项目(以及fork了该项目的仓库)能访问到这些文件。
    • template 类型引用的是GitLab平台内置、官方维护的通用CI模板,这些文件根本不存在于你自己的项目仓库里,是随GitLab版本预装在平台公共模板库中的,所有接入该GitLab实例的项目都能直接引用,你没法直接修改模板的源文件,只能在自己项目的CI配置里覆写模板里定义的job、变量、执行规则等内容。
  • 路径解析规则差异
    • local 类型的路径会严格匹配仓库内的实际文件结构,路径写错会直接报CI配置校验失败,支持引用任意子目录下的配置,比如local: ./ci/configs/build.yml就是合法写法。
    • template 类型的路径固定匹配GitLab内置模板库的目录结构,比如常用的template: Jobs/SAST.gitlab-ci.yml就是官方自带的静态应用安全扫描模板,不需要你在本地仓库存对应文件,引用后就能直接把扫描规则加到自己的流水线里。

示例里的配置是很典型的用法:先引入官方提供的通用默认CI规则作为基础配置,再叠加项目自己维护的两类测试配置,快速拼出完整的CI流水线,不用从零开始写所有规则。

内容的提问来源于stack exchange,提问作者Ambroise Rabier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:18:33