GitLab CI 中的所有阶段都没有存储缓存文件

Cache files isn't storing for all stages in GitLab CI

我有用于构建和 运行 测试的 gitlab-ci 脚本。但是,在构建过程中创建的目录将被删除。 我的脚本:

stages:
  - build
  - test

server:
  stage: build
  script:
  - cd Server/NodeJS
  - npm install
  - npm install zmq
  cache:
    key: "$CI_BUILD_NAME"
    untracked: true
    paths:
    - Server/NodeJS/node_modules/

client:
  stage: build
  script:
  - cd Client/web
  - npm install
  - npm run build-demo
  - npm run build-main
  cache:
    key: "$CI_BUILD_NAME"
    untracked: true
    paths:
    - Client/web/build-main/

functional_tests:
  stage: test
  script:
  - cd Server/NodeJS
  - ls node_modules/
  - ls ../../Client/web/
  ...

ls 不打印缓存目录。我做错了什么?

由于您没有定义全局缓存,functional_tests 作业中也没有定义缓存,所以它不知道有任何缓存。

你需要做这样的事情:

functional_tests:
  stage: test
  script:
  - cd Server/NodeJS
  - ls node_modules/
  - ls ../../Client/web/
  cache:
    key: "$CI_BUILD_NAME"
    untracked: true
    paths:
    - Client/web/build-main/
    - Server/NodeJS/node_modules/

另外,请注意缓存是在尽力而为的基础上提供的,所以不要指望缓存会一直存在。

因此你不能假设总是有缓存,你需要编写脚本,因为没有缓存。