diff --git a/.gitea/workflows/pull-request.yml b/.gitea/workflows/pull-request.yml index ccef1f3..c161627 100644 --- a/.gitea/workflows/pull-request.yml +++ b/.gitea/workflows/pull-request.yml @@ -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