首页/开发/CI/CD 与发布速查/缓存策略与失效控制(policy)
流水线设计54 条

缓存策略与失效控制(policy)

通过 pull / push / pull-push 控制缓存读写角色:由受信任的作业负责写缓存,其余只读,降低污染面。

CI/CD 与发布速查开发更新于 2026-10-12
GitLabcache:policy 可选 pull、push、pull-push(默认)
GitHub缓存按分支隔离,但默认分支的缓存可被其他分支(含 PR)恢复
失效手段改键前缀、调整键输入文件、清理缓存

GitLab 只读缓存

GitLab 只读缓存
default:
  cache:
    key: deps-$CI_COMMIT_REF_SLUG
    policy: pull
    paths: [.cache/]
缓存由不可信代码写入可能被投毒:限制可写缓存的作业范围(例如仅默认分支)。

易错点

  • 所有作业都写同一缓存键:并行写入产生竞态,内容以最后写入者为准
  • 改了缓存结构却不换键:旧结构缓存被新工具读到,出现难以复现的构建差异

数据来源与参考

  • GitLab Docs《Cache:policy》
  • GitHub Docs《Caching dependencies》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌