GitLab CI 作业需要 20 分钟以上

Per*_*ion 5 continuous-integration node.js 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
Run Code Online (Sandbox Code Playgroud)

Per*_*ion 2

看来将来会有一个解决方案,因为这个问题已经在这里讨论了近两年了。已经设定了一个里程碑,因此这个问题最终可以得到解决。

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