Gitlab CI: npm не нравится кешированные node_modules - PullRequest
1 голос
/ 26 марта 2019

В интернете полно жалоб на то, что Gitlab не кеширует, но в моем случае я думаю, что Gitlab CI действительно кеширует правильно. Дело в том, что npm, похоже, все равно устанавливает заново.

cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - vendor/
    - bootstrap/
    - node_modules/

build-dependencies:
  image: ...
  stage: build
  script:
  - cp .env.gitlab-testing .env
  - composer install --no-progress --no-interaction
  - php artisan key:generate
  - npm install
  - npm run prod
  - npm run prod
  artifacts:
    paths:
    - vendor/
    - bootstrap/
    - node_modules/
    - .env
    - public/mix-manifest.json
  tags:
  - docker

Это мой файл gitlab-ci.yml (ну ... соответствующая часть). Пока используются кэшированные зависимости компоновщика, node_modules - нет. Я даже добавил все в кеш и артефактов из отчаяния.

Ответы [ 2 ]

1 голос
/ 20 июня 2019

На самом деле это должно работать, ваш кеш настроен глобально, ваш ключ ссылается на текущую ветку ${CI_COMMIT_REF_SLUG} ...

Это моя сборка, и кажется, что она кеширует node_modules между этапами.

image: node:latest

cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
  - node_modules/
  - .next/

stages:
  - install
  - test
  - build
  - deploy

install_dependencies:
  stage: install
  script:
    - npm install

test:
  stage: test
  script:
    - npm run test

build:
  stage: build
  script:
    - npm run build

0 голосов
/ 27 марта 2019

Путь кеша по умолчанию: ~/.npm

Чтобы установить каталог кэша npm:

npm config set cache <path> --global

см. здесь для получения дополнительной информации

...