文章 · 工程化
CI 缓存预热:把冷启动摊到夜里
流水线最慢的一次永远是第一次。冷启动时缓存全是空的,所有依赖都要重新装、所有产物都要重新编。把这份成本挪到夜里,白天的提交就都是热的。
为什么冷启动特别贵
冷启动不只是慢,它还会让后续步骤都排在一条长队里。一次冷启动能把整条流水线的平均耗时拉高一倍以上。
定时预热
按主分支的最新提交定时跑一次完整构建,把依赖缓存和产物缓存都填满。等白天有人提交时,命中率已经很高了。
预热也要挑时间
放在团队的休息时段跑,既不占白天的并发额度,又能保证缓存的新鲜度。频率不用太高,一天一次通常就够。
评论14
登录后参与评论,你的发言会署上自己的名字。
周迟作者@zhouchi·2026-09-12
先占个位:文里的数字都是本地实测的,测试环境写在文末备注里,有疑问直接在这儿回。
罗叙@luoxu·2026-09-14
并行分片我们试过,收益确实明显,但要注意任务之间的隐式依赖。
白露@bailu·2026-09-15
同感,我们是先画了一遍依赖图才敢拆的。
江辰@jiangchen·2026-09-15
缓存那部分能不能再展开讲讲?我们这边命中率一直上不去。
唐棠@tangtang·2026-09-16
产物裁剪这条被低估了,sourcemap 和语言包占的空间比想象中大。
孟凡@mengfan·2026-09-17
构建脚本重写那段看着很有共鸣,最花时间的果然还是新旧产物对照。
段然@duanran·2026-09-18
缓存只能加速、不能当真相,这句话值得贴在看板上。
于野@yuye·2026-09-19
我们踩过一次,缓存里的数据比库里旧了两个版本,排查了很久。