ci : retire tout le caching (backend de cache runner injoignable, timeout 4m30)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m15s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m9s

Les logs montrent que chaque operation actions/cache attend ~4m30 avant
ETIMEDOUT sur le serveur de cache du runner Gitea (51.91.78.99:39531) :
- cache: npm de setup-node = tout le 'Setup Node 22' (271s)
- cache node_modules et cache .nuxt : timeouts additionnels
- cache Composer cote backend : meme risque

Node 22 est deja dans le tool-cache (install instantane), npm ci a froid
~30s, build ~20s : le caching n'apportait rien ici. A re-activer si le
serveur de cache du runner est repare.
This commit is contained in:
Matthieu
2026-05-27 16:21:27 +02:00
parent f5312686ab
commit 94b3acec05
+8 -42
View File
@@ -60,14 +60,9 @@ jobs:
coverage: none
tools: composer:v2
- name: Cache Composer
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: composer-${{ hashFiles('composer.lock') }}
restore-keys: |
composer-
# Cache Composer retire : meme cause que cote front — le backend de cache
# du runner Gitea est injoignable (ETIMEDOUT) et fait timeouter le step
# ~4 min 30. A re-activer si le serveur de cache du runner est repare.
- name: Install PHP dependencies
run: composer install --no-interaction --no-progress --prefer-dist
@@ -99,48 +94,19 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
# Pas de `cache: npm` : le backend de cache du runner Gitea est injoignable
# (ETIMEDOUT) et chaque tentative de restauration attend ~4 min 30 avant de
# timeout — c'est ce qui plombait le job. Node 22 est deja dans le
# tool-cache du runner (install instantane), et `npm ci` a froid ne prend
# que ~30s. A re-activer si le serveur de cache du runner est repare.
- name: Setup Node 22
uses: actions/setup-node@v4
with:
node-version: '22'
cache: npm
cache-dependency-path: frontend/package-lock.json
# 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
if: steps.node-modules-cache.outputs.cache-hit != 'true'
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
run: npm run lint