web-dev-qa-db-fra.com

Gitlab CI: NPM n'aime pas les nœuds de mises en cache_modules

Internet est plein de plaintes de gitlab pas de mise en cache, mais dans mon cas, je pense que Gitlab CI est en train de mettre en cache correctement. La chose est que NPM semble tout installer de toute façon.

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

Ceci est mon fichier gitlab-ci.yml (bien .. la partie correspondante). Bien que le cached composer dépendances sont utilisés, les nœuds_modules ne sont pas. J'ai même ajouté tout au cache et artefacts de désespoir ..

8
TimSch

En fait, cela devrait fonctionner, votre cache est défini dans le monde entier, votre clé fait référence à la branche actuelle ${CI_COMMIT_REF_SLUG}...

Ceci est ma construction et il semble cacher le nœud_modules entre les étapes.

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

5
dimisus

Le chemin de cache par défaut est ~/.npm

Pour définir le répertoire du cache NPM:

npm config set cache <path> --global

voir ICI pour plus d'informations

0
Amityo