Portes de qualité
Ce qui doit passer avant de merger, en local comme sur GitHub.
Une porte de qualité est une vérification qui doit passer avant qu'un changement ne rejoigne la branche principale. Vantablvck en applique quatre, aux deux bouts de la chaîne : sur la machine du développeur, et sur GitHub.
Les quatre portes
| Porte | Outil | Ce qui est vérifié |
|---|---|---|
| Lint et format | Biome | Style, format, et nommage des fichiers en kebab-case |
| Types | Nx et TypeScript | Types de tous les projets, sauf l'app native gelée |
| Tests | Bun | Tests unitaires, à commencer par la logique de packages/core |
| Build | Nx | Construction de tous les projets, sauf l'app native |
Le nommage en kebab-case fait partie du lint : Biome refuse un fichier qui ne respecte pas la convention, sauf pour les fichiers imposés par les frameworks (routes Next et Expo).
La porte locale, avant le commit
Un hook Husky intercepte chaque commit et lance lint-staged, qui passe Biome sur les fichiers indexés. Le format et les corrections sûres sont appliqués avant que le commit ne parte. On attrape ainsi la plupart des problèmes sans attendre la CI.
# déclenché automatiquement par le hook pre-commit
bunx lint-stagedErreurs contre warnings
biome ci distingue deux niveaux. Cette distinction décide de ce qui bloque un merge.
Une erreur fait échouer la CI et bloque le merge. Un warning est signalé mais ne bloque pas. Aujourd'hui, le lint sort en code 0 : il reste quelques warnings hérités du scaffold (imports inutilisés, assertions non nulles), sans erreur bloquante.
Ce qui est prévu
La suite de tests couvrira aussi le serveur. Des tests d'intégration piloteront l'API Elysia via app.handle, ce qui demandera un service PostgreSQL dans la CI. Cette porte s'ajoutera aux quatre existantes une fois le backend métier en place.