2023-08-29 · CI-CD

缓存依赖来缩短 CI 构建时间

正确地对 lockfile 做哈希、处理缓存未命中时的恢复流程,避免拿到过期的 node_modules。

前言

给出 GitHub Actions 和 GitLab CI 的可用配置,并附上一个中型 monorepo 的实际命中率数据。

常见的翻车姿势

跳过这一步的团队,通常会踩中三种坑:

  • 优化了一个没人同意要动的数字。
  • 照抄了约束完全不同的项目的方案。
  • 一直推迟决策,直到反悔的代价高得吓人。

建议的切入方式

  1. 用用户的语言,一句话讲清楚问题。
  2. 选择一个每周都能度量的信号,而不是只在上线当天看一眼。
  3. 给小实验设定时间盒;两天的 spike 胜过两周的辩论。

小结

如果 CI-CD 教会了我们什么,那就是「无聊的一致性」打赢「聪明的一次性方案」。把学到的东西带回团队,别让它变成口口相传的都市传说。