GitLab CI工作需要20分钟以上的时间

时间:2018-07-16 14:20:57

标签: node.js continuous-integration gitlab gitlab-ci

使用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

1 个答案:

答案 0 :(得分:0)

由于在此问题已讨论了将近两年,因此将来似乎将有解决方案。已经设置了一个里程碑,以便最终可以解决。

https://gitlab.com/gitlab-org/gitlab-runner/issues/1797