首页/开发/CI/CD 与发布速查/GitLab CI 的 cache key 与策略
工具链要点63 条

GitLab CI 的 cache key 与策略

缓存按 key 隔离:用 lockfile 哈希做 key 让依赖变更即换缓存;前缀按分支隔离,避免不同分支互相污染。

CI/CD 与发布速查开发更新于 2026-10-12
key字符串或 files(文件哈希)
前缀key: $CI_COMMIT_REF_SLUG 分支隔离
策略policy: pull / push / pull-push
语义缓存不保证存在,命中失败要能回退到全量安装

按锁文件缓存

按锁文件缓存
cache:
  key:
    files: [package-lock.json]
  paths: [node_modules/]
  policy: pull-push
只读作业可以 policy: pull 避免并发上传互相覆盖;上传统一交给一个作业。

易错点

  • 缓存当制品用:缓存可被清理,关键文件必须走 artifacts
  • key 只用分支名:依赖更新后缓存不失效,旧依赖一直复用

数据来源与参考

  • GitLab Docs《Caching in GitLab CI/CD》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌