首页/开发/CI/CD 与发布速查/缓存与制品的区别(Cache vs Artifacts)
流水线设计54 条

缓存与制品的区别(Cache vs Artifacts)

缓存是「可再生的加速物料」,制品是「作业间交付物并对用户可见」:混用会导致产物丢失或缓存污染。

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

对比

维度缓存 Cache制品 Artifacts
目的加速后续作业与流水线传递与归档产物
生命周期可能随时被清理按保留策略存储,可下载
命中逻辑键匹配即可复用按声明的依赖关系下载
可丢性丢了只是变慢丢了流程即断

GitLab

GitLab
cache:
  key:
    files: [package-lock.json]
  paths: [node_modules/]

artifacts:
  paths: [dist/]
  expire_in: 1 week
把构建产物只放 cache:缓存被清理后下游作业直接失败。

易错点

  • 缓存 node_modules 却未锁定键:lockfile 变更后命中旧依赖,出现幽灵问题
  • 制品声明了不该传的目录(如 .env、私钥):制品对项目成员可见,等于泄露

数据来源与参考

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