12. Devops ‐ CI CD ‐ Outils - BlacF0X/owl GitHub Wiki

DevOps & Gestion de Projet

L'automatisation et l'outillage sont au cœur de notre processus de développement pour garantir la qualité du code et la rapidité des livraisons.

1. Automatisations (CI/CD)

Nous avons mis en place un pipeline d'intégration et de déploiement continus robuste, basé sur GitHub Actions et Vercel.

Intégration Continue (CI)

À chaque fois qu'un développeur pousse du code (git push) ou ouvre une Pull Request vers les branches main ou develop, un workflow GitHub Actions (.github/workflows/ci.yml) se déclenche automatiquement.

Ce workflow exécute en parallèle des vérifications pour le Frontend et le Backend :

  • Linting : Analyse statique du code avec ESLint pour détecter les erreurs de syntaxe et les mauvaises pratiques.
  • Formatage : Vérification du style de code avec Prettier pour garantir une cohérence absolue dans l'équipe.
  • Tests Unitaires & Intégration : Exécution de la suite de tests Jest.
  • Build Check : Tentative de compilation du projet (Next.js et TypeScript) pour s'assurer qu'aucune erreur de build ne bloquera le déploiement.

Sécurité : Nous avons configuré des règles de protection de branche sur GitHub. Il est impossible de fusionner du code dans main si ce pipeline CI échoue (bouton Merge bloqué).

Déploiement Continu (CD)

Le déploiement est entièrement géré par la plateforme Vercel, qui est connectée à notre dépôt GitHub.

  • Environnements de Prévisualisation (Preview) : Pour chaque Pull Request, Vercel déploie une version temporaire de l'application sur une URL unique. Cela permet à l'équipe de tester visuellement les nouvelles fonctionnalités avant de les valider.
  • Environnement de Production : Lors d'un merge sur la branche main, Vercel déploie automatiquement la nouvelle version en production, sans aucune intervention manuelle.
  • Gestion des Secrets : Les variables d'environnement (clés API, URL de base de données) sont injectées de manière sécurisée par Vercel au moment du build, grâce à une intégration directe avec notre gestionnaire de secrets.

2. Outils de Gestion de Projet

Pour collaborer efficacement à 6 personnes, nous utilisons une suite d'outils modernes.

Gestion des Tâches : GitHub Projects

Nous utilisons le tableau Kanban intégré à GitHub ("Projects").

  • Backlog : Toutes les User Stories et tâches techniques sont créées sous forme d'Issues.
  • Suivi : Les colonnes "Todo", "In Progress", "Review" et "Done" permettent de visualiser l'avancement du sprint en temps réel.
  • Lien Code-Tâche : Chaque Pull Request est liée à une Issue, ce qui ferme automatiquement la tâche une fois le code fusionné.

Gestion des Secrets : Doppler

La sécurité des identifiants est critique. Nous n'avons aucun fichier .env partagé par message ou stocké dans Git.

  • Centralisation : Tous les secrets (Clerk, Supabase, etc.) sont stockés dans Doppler.
  • Synchronisation : Doppler injecte automatiquement les bons secrets dans nos environnements locaux (doppler run -- npm run dev) et synchronise les secrets de production directement vers Vercel.

Communication & Documentation

  • Discord : Communication quotidienne, avec des canaux dédiés par pôle (Dev, Hardware).
  • GitHub Wiki : Documentation technique pérenne (Architecture, API, Procédures de test).