ci : add pull_request quality gate workflow #11

Merged
matthieu merged 2 commits from ci/pull-request-quality-gate into develop 2026-05-19 13:56:00 +00:00
Owner

Resume

Premier workflow CI Gitea sur les pull requests. Lance lint + tests + build a chaque PR ciblant develop, en deux jobs paralleles.

Contenu

  • .gitea/workflows/pull-request.yml (nouveau)
    • Trigger : pull_request -> develop
    • Concurrency group pr-<number> avec annulation des runs obsoletes
    • Job backend : PHP 8.4, service postgres:16-alpine, cache composer, JWT keypair, php-cs-fixer dry-run, bootstrap DB test (doctrine create + migrate + schema:update + fixtures + sync-permissions), phpunit
    • Job frontend : Node 22, cache npm, npm ci, eslint, vitest, nuxt build (build:dist)
  • makefile
    • Nouvelle cible php-cs-fixer-check (dry-run + diff) reutilisable en pre-push local

Hors scope

  • Tests E2E : volontairement exclus (regle d'or .claude/rules/testing.md : E2E uniquement pour bug critique passe en prod, sinon Vitest). A reconsiderer plus tard en workflow nightly si besoin.

Test plan

  • Le workflow se declenche bien a l'ouverture de cette PR
  • Job backend vert (composer + php-cs-fixer dry-run + phpunit sur PG ephemere)
  • Job frontend vert (eslint + vitest + nuxt build)
  • Temps total <5 min apres warm cache
## Resume Premier workflow CI Gitea sur les pull requests. Lance lint + tests + build a chaque PR ciblant develop, en deux jobs paralleles. ## Contenu - `.gitea/workflows/pull-request.yml` (nouveau) - Trigger : `pull_request` -> `develop` - Concurrency group `pr-<number>` avec annulation des runs obsoletes - Job **backend** : PHP 8.4, service postgres:16-alpine, cache composer, JWT keypair, php-cs-fixer dry-run, bootstrap DB test (doctrine create + migrate + schema:update + fixtures + sync-permissions), phpunit - Job **frontend** : Node 22, cache npm, npm ci, eslint, vitest, nuxt build (`build:dist`) - `makefile` - Nouvelle cible `php-cs-fixer-check` (dry-run + diff) reutilisable en pre-push local ## Hors scope - Tests E2E : volontairement exclus (regle d'or `.claude/rules/testing.md` : E2E uniquement pour bug critique passe en prod, sinon Vitest). A reconsiderer plus tard en workflow nightly si besoin. ## Test plan - [ ] Le workflow se declenche bien a l'ouverture de cette PR - [ ] Job backend vert (composer + php-cs-fixer dry-run + phpunit sur PG ephemere) - [ ] Job frontend vert (eslint + vitest + nuxt build) - [ ] Temps total <5 min apres warm cache
matthieu added 1 commit 2026-05-19 13:19:23 +00:00
ci : add pull_request quality gate workflow
Some checks failed
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 13s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 10m18s
2aecab0a5f
Workflow Gitea declenche sur chaque PR ciblant develop, avec deux jobs
paralleles :
- backend : composer install, php-cs-fixer dry-run, bootstrap DB test
  (service postgres:16-alpine), phpunit
- frontend : npm ci, eslint, vitest, nuxt build

Ajoute aussi la cible make php-cs-fixer-check (dry-run) pour avoir la
meme commande en local et en CI.

E2E volontairement hors scope (regle d'or testing.md : tests E2E
uniquement pour bug critique passe en prod).
matthieu added 1 commit 2026-05-19 13:41:01 +00:00
ci : fix backend job — utiliser nom de service postgres au lieu de 127.0.0.1
All checks were successful
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m31s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 10m8s
a11251b253
Le runner Gitea Actions partage l'hote avec la prod (Postgres deja sur
5432), et les jobs tournent en container sur un reseau Docker dedie.
Le mapping `ports: 5432:5432` echouait avec "address already in use",
et de toute facon le service est joignable via son nom (`postgres`)
depuis le container du job — pas besoin d'exposer le port sur l'hote.

- Drop `ports:` block du service postgres
- DATABASE_URL : host `127.0.0.1` -> `postgres`
matthieu merged commit 34e75a35fb into develop 2026-05-19 13:56:00 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/Starseed#11