From e4d8c042543a3b06bc16f3f10969723332b3bf0d Mon Sep 17 00:00:00 2001 From: Matthieu Date: Wed, 27 May 2026 15:46:54 +0200 Subject: [PATCH 1/3] 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 --- .gitea/workflows/pull-request.yml | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.gitea/workflows/pull-request.yml b/.gitea/workflows/pull-request.yml index c161627..681f0a5 100644 --- a/.gitea/workflows/pull-request.yml +++ b/.gitea/workflows/pull-request.yml @@ -104,9 +104,41 @@ jobs: with: 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 + 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 -- 2.39.5 From 38150bf5e611897160bc9769ec203adbecfdc9e2 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Wed, 27 May 2026 16:21:27 +0200 Subject: [PATCH 2/3] ci : retire tout le caching (backend de cache runner injoignable, timeout 4m30) 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. --- .gitea/workflows/pull-request.yml | 32 ------------------------------- 1 file changed, 32 deletions(-) diff --git a/.gitea/workflows/pull-request.yml b/.gitea/workflows/pull-request.yml index 681f0a5..c161627 100644 --- a/.gitea/workflows/pull-request.yml +++ b/.gitea/workflows/pull-request.yml @@ -104,41 +104,9 @@ jobs: with: 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 - 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 -- 2.39.5 From 767bd4497a5dc7ae16c61c9f9d1d1fe316995722 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 28 May 2026 09:30:08 +0200 Subject: [PATCH 3/3] feat(catalog) : expose CategoryType as read-only ApiResource with default label ASC sort --- src/Module/Catalog/Domain/Entity/CategoryType.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Module/Catalog/Domain/Entity/CategoryType.php b/src/Module/Catalog/Domain/Entity/CategoryType.php index 797fd65..83aa826 100644 --- a/src/Module/Catalog/Domain/Entity/CategoryType.php +++ b/src/Module/Catalog/Domain/Entity/CategoryType.php @@ -29,6 +29,9 @@ use Symfony\Component\Serializer\Attribute\Groups; new GetCollection( security: "is_granted('catalog.categories.view')", normalizationContext: ['groups' => ['category_type:read']], + // Tri par defaut requis par la spec M0 ยง 4.6 : ordre alphabetique + // stable pour alimenter le du formulaire Category. + order: ['label' => 'ASC'], ), new Get( security: "is_granted('catalog.categories.view')", -- 2.39.5