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 ..
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
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