Infrastructure CI/CD & Qualité
Vue d'ensemble de tous les pipelines automatisés, portails qualité et outils développeur utilisés dans les dépôts Aurora Home.
Cycle de vie d'une PR
Pipeline CI (GitHub Actions)
À chaque pull request, les vérifications de lint et de build s'exécutent automatiquement pour garantir la qualité du code avant la fusion.
Next.js
- Lint et formatage avec
npx biome check . - Vérification du build de production avec
npx next build - Les fichiers CSS sont exclus de Biome via un motif de négation dans biome.json
Nuxt
- Génère le répertoire .nuxt/ avec
npx nuxt prepare - Lint avec
npx eslint . - Vérification des types TypeScript avec
npx nuxt typecheck
Couverture (Vitest + v8)
La couverture de tests s'exécute sur chaque pull request. Un commentaire structuré est posté sur la PR et le rapport est uploadé comme artefact pour la comparaison de delta avec la branche main.
Commentaire de couverture sur la PR
Chaque exécution poste ou met à jour un commentaire avec le statut (🔵 OK / 🔴 sous le seuil), le pourcentage avec la cible, le delta de changement par rapport à main, et les compteurs couvert/total.
| Status | Category | Percentage | Change | Covered / Total |
|--------|------------|-----------------|-----------|-----------------|
| 🔵 | Lines | 84.20% (🎯 80%) | 🟢 +1.40% | 168 / 200 |
| 🔵 | Statements | 82.50% (🎯 80%) | 🟰 ±0% | 165 / 200 |
| 🔴 | Functions | 79.50% (🎯 80%) | 🔴 -0.50% | 63 / 80 |
| 🔵 | Branches | 71.00% (🎯 70%) | 🟢 +2.00% | 71 / 100 |Seuils Next.js
- Lignes / Instructions / Fonctions : 80%
- Branches : 70%
Seuils Nuxt
- Lignes / Instructions / Fonctions : 70%
- Branches : 60%
PR Agent (GitHub Models)
Lorsqu'une pull request est ouverte ou réouverte avec une description vide, un workflow GitHub Actions la génère et la remplit automatiquement via l'API GitHub Models (gpt-4o-mini).
Fonctionnement
- Déclenché uniquement sur les événements opened et reopened — n'écrase jamais une description rédigée par l'auteur
- Nécessite un Personal Access Token stocké sous
GH_MODELS_TOKENdans les secrets du dépôt (gratuit, sans facturation externe) - Génère : les sections Résumé, Type de changement et Plan de test en anglais
on:
pull_request:
types: [opened, reopened]
jobs:
describe:
if: github.event.pull_request.body == ''
steps:
- uses: actions/github-script@v7
env:
GH_MODELS_TOKEN: ${{ secrets.GH_MODELS_TOKEN }}
with:
script: |
// Calls GitHub Models API (gpt-4o-mini)
// Updates PR body with generated descriptionDéploiements Vercel
Chaque dépôt est connecté à Vercel. Les déploiements sont automatiques et liés au workflow Git.
Concerne uniquement aurora-home-documentation et aurora-home-marketing. Le projet aurora-home-app (application Next.js embarquée) n'utilise pas Vercel.
Déploiement de prévisualisation
Chaque pull request reçoit une URL de prévisualisation unique — partagée dans les vérifications de la PR pour une revue visuelle rapide.
Déploiement en production
La fusion sur main déclenche automatiquement un déploiement en production.
Revue de code CodeRabbit
CodeRabbit effectue une revue de code assistée par IA sur chaque pull request, configurée via .coderabbit.yaml à la racine du dépôt.
Configuration
- Profil de revue réglé sur
profile: chill - Des instructions spécifiques par chemin fournissent des conseils contextuels par répertoire (components, tests, lib)
- Répond automatiquement aux commentaires et ferme les threads résolus
language: "en"
reviews:
profile: "chill"
path_instructions:
- path: "**/*.test.ts"
instructions: "Check mocks are realistic and edge cases covered."
- path: "src/components/**/*.tsx"
instructions: "Check accessibility and props typing."
- path: "src/lib/**/*.ts"
instructions: "Check error handling and return types."Protection des branches (GitHub Rulesets)
Les GitHub Rulesets imposent des contrôles qualité sur la branche main. Toutes les vérifications doivent passer avant qu'une PR puisse être fusionnée.
Règles appliquées sur main
- Vérifications de statut requises : les 3 workflows doivent passer (CI, Coverage, Vercel)
- Le force push et la suppression de branche sont désactivés
- Le propriétaire du dépôt dispose d'une permission de contournement pour les correctifs d'urgence
Hooks pre-commit (Husky + lint-staged)
Husky et lint-staged exécutent automatiquement les formateurs et linters avant chaque commit, détectant les problèmes avant qu'ils n'atteignent la CI.
Next.js — Biome
- Husky + lint-staged configurés dans package.json
biome check --write
"lint-staged": {
"*.{ts,tsx,js,json}": [
"biome check --write"
]
}Nuxt — ESLint + Prettier
- Husky + lint-staged configurés dans package.json
eslint --fix+prettier --write
"lint-staged": {
"*.{vue,ts,js,mjs}": [
"eslint --fix",
"prettier --write"
]
}Tout est automatisé
Dès qu'une branche est poussée, le pipeline gère le lint, les tests, le rapport de couverture, la description de PR, le déploiement de prévisualisation et la revue de code IA — avec la protection de branche garantissant que rien n'atteint main sans passer toutes les vérifications.