使用gitlab-ci,我正在使用一个简单的.yml文件。我定义了多个阶段以使其同步运行。我已经为node_modules设置了一个缓存。但是问题在于,node_modules的缓存实际上正在减慢该过程。需要此缓存以使每个阶段的node_modules相同。 (由于某些原因,每个阶段都会自动清除/ node_modules)
在本地进行构建时,整个过程不到2分钟。但是在CI机器上,此过程需要20到25分钟。了解了Gitlab CI在内部的工作方式后,我了解到它正在压缩node_module文件(大约36K个小文件),并且该过程非常缓慢。
tl; dr:在不将node_modules上传到工件的情况下,使用Gitlab CI处理node_module缓存的正确方法是什么?我想避免上传超过400MB的工件。
请参阅下面的配置:
cache:
untracked: true
key: "%CI_COMMIT_REF_NAME%"
paths:
- node_modules
stages:
- install
- eslint-check
- eslint
- prettier
- test
- dist
# install dependancies
install:
stage: install
script:
- yarn install
environment:
name: development
# run eslint-check
eslint-check:
stage: eslint-check
script:
- yarn eslint-check
environment:
name: development
# Other scripts below
答案 0 :(得分:0)
由于在此问题已讨论了将近两年,因此将来似乎将有解决方案。已经设置了一个里程碑,以便最终可以解决。