- 使最小测试操作运行大约 +/-12 分钟(而之前为 [25-35] 分钟)。
- 使完整的测试操作在+/- 55分钟的冷缓存中运行(而在1小时20分/1小时40分的热缓存之前?)
- 更能适应 npm 中断(在热缓存上)。
- yarn.lock 更改不会完全使缓存失效(添加和修剪更改的内容)。新的 P/R 通常会从热缓存开始。
- 减少 github 缓存预算的压力
- 冷缓存:参见https://github.com/strapi/strapi/pull/16581#issuecomment-1531948373
- 温缓存:请参阅https://github.com/strapi/strapi/pull/16581#issuecomment-1535147844
尝试缩短 ci 安装时间。
为了使其工作,.yarn/cache/*.zip
还应该缓存/恢复。
没有适用于每种用例的单一解决方案,因此我根据经验创建了单独的安装操作。
链接:
- https://github.com/belgattitude/compare-package-managers
- https://gist.github.com/belgattitude/042f9caf10d029badbde6cf9d43e400a
- https://gist.github.com/belgattitude/0ecd26155b47e7be1be6163ecfbb0f0b
要获得快速安装:.yarn/cache
++install_state
是**/node_modules/
理想的选择。
请参阅(来自https://github.com/belgattitude/httpx/actions/runs/4850630708/jobs/8643715240)
- (1) 必需:yarn 缓存
.yarn/cache.zip
(即使在锁更改时也可重用) - (2) 可选:install_state(锁/操作系统/节点版本更改时无效)
- (3) 可选:node_modules/**(锁/操作系统/节点版本更改时无效)
由于缓存 node_modules 文件夹在压缩/解压缩时间方面很重(+锁更改/架构/libc 失效...)。有时最好不要启用它。特别是当使用 YARN_COMPRESSION_LEVEL=0 时
但看看您的工作流程,保存所有内容可能是有意义的(以便可以在步骤之间重用)。它在缓存大小和压缩/解压缩方面更重......可能需要尝试这两个选项来获取测量结果(安装时间以及存储/恢复缓存的时间)
我直接在代码中注释
为什么需要它?并不是真正需要,但尝试一下可能会很有趣。非常适合:落叶树::回收:
如何测试呢?CI 应该可以通过,安装缓存应该会带来一些速度提升。
任务列表:- [x] 修复 setup/node 中的无效参数https://github.com/strapi/strapi/pull/16581/commits/980c6f1f6fbf2edc2fd3b64aa996f341928d43f6
修复警告:
Unexpected input(s) 'path', 'key', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path']
-
[x] 基于https://gist.github.com/belgattitude/042f9caf10d029badbde6cf9d43e400a创建并使用单独/自定义操作进行安装
-
[x] 添加缓存清理工作流程,请参阅https://gist.github.com/belgattitude/042f9caf10d029badbde6cf9d43e400a# cleanup-caches