ci(frontend) : accelere le job PR (nuxt build + cache node_modules & build Nuxt/Vite)
- remplace build:dist (nuxt generate + prerender inutile en SPA) par nuxt build - cache node_modules sur hash du lockfile, npm ci uniquement en cache miss - regenere les types Nuxt (postinstall) en cache hit - cache des artefacts .nuxt / Vite avec restore-keys pour eviter le build a froid
This commit is contained in:
@@ -104,9 +104,41 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version: '22'
|
node-version: '22'
|
||||||
|
|
||||||
|
# Cache de node_modules entier (pas seulement le cache de download npm).
|
||||||
|
# Cle = hash du lockfile : tant qu'il ne bouge pas, on saute l'extraction
|
||||||
|
# des ~1300 paquets (369 Mo) et le postinstall.
|
||||||
|
- name: Cache node_modules
|
||||||
|
id: node-modules-cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: frontend/node_modules
|
||||||
|
key: node-modules-${{ hashFiles('frontend/package-lock.json') }}
|
||||||
|
|
||||||
|
# npm ci uniquement en cache miss (il efface node_modules de toute facon).
|
||||||
- name: Install Node dependencies
|
- name: Install Node dependencies
|
||||||
|
if: steps.node-modules-cache.outputs.cache-hit != 'true'
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
|
# En cache hit, node_modules est restaure tel quel : le postinstall
|
||||||
|
# (nuxt prepare) n'a pas tourne. On regenere les types .nuxt a la main
|
||||||
|
# pour que lint/vitest/build disposent du contexte Nuxt.
|
||||||
|
- name: Prepare Nuxt (cache hit)
|
||||||
|
if: steps.node-modules-cache.outputs.cache-hit == 'true'
|
||||||
|
run: npm run postinstall
|
||||||
|
|
||||||
|
# Cache des artefacts de build Nuxt/Vite pour eviter un build a froid a
|
||||||
|
# chaque PR. Cle par commit + restore-keys pour repartir du build le plus
|
||||||
|
# recent ; Vite invalide ses entrees obsoletes par hash de contenu.
|
||||||
|
- name: Cache Nuxt/Vite build
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
frontend/.nuxt
|
||||||
|
frontend/node_modules/.cache
|
||||||
|
key: nuxt-build-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
nuxt-build-
|
||||||
|
|
||||||
- name: ESLint
|
- name: ESLint
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user