Aller au contenu principal

CI/CD

Statut

Document de cadrage DevOps — version initiale.

Objectif

La CI/CD DMV doit sécuriser les changements sans créer une chaîne de déploiement trop complexe.

La priorité est de tester, construire, livrer et pouvoir revenir en arrière de manière fiable.

État actuel visible

Le workspace contient des scripts de déploiement manuels pour l'API Laravel :

  • deployment/deploy.sh ;
  • deployment/install.sh ;
  • deployment/nginx.conf ;
  • deployment/supervisor.conf ;
  • deployment/crontab.txt.

L'inspection locale hors dépendances ne confirme pas de workflow GitHub projet présent dans le workspace.

Le contexte validé indique toutefois des workflows CI/CD visibles partiellement. Leur état exact doit être consolidé.

Pipeline cible minimal

ÉtapeBackend LaravelFrontends
Installationcomposer installnpm ci ou équivalent verrouillé.
QualitéPint, analyse ciblée si configurée.ESLint.
TestsPHPUnit / tests Laravel.Tests frontend si présents.
BuildCache config/routes si pertinent.next build, vite build.
ArtefactRelease ou code déployable.Build statique ou app Node selon cible.
DéploiementScript contrôlé.Plateforme frontend retenue.

Environnements de pipeline

La CI/CD cible doit distinguer :

  • pull request ;
  • branche de développement ;
  • staging ;
  • production ;
  • hotfix.

Principes

  • Ne pas déployer si les tests critiques échouent.
  • Ne pas exposer les secrets dans les logs.
  • Ne pas exécuter de migrations destructrices sans procédure.
  • Garder les déploiements traçables.
  • Commencer avec un pipeline simple.
  • Éviter les outils multiples pour le même objectif.

Déploiement API actuel

Le script deploy.sh :

  • active le mode maintenance ;
  • récupère origin/main ;
  • réinitialise le code sur origin/main ;
  • installe Composer en production ;
  • corrige les permissions ;
  • reconstruit les caches Laravel ;
  • optimise Laravel ;
  • redémarre Supervisor ;
  • recharge PHP-FPM ;
  • désactive la maintenance ;
  • vérifie /api/v1/health.

Points à clarifier

  • Workflows GitHub réellement actifs.
  • Stratégie de branche.
  • Commandes de test obligatoires.
  • Déploiement frontends.
  • Validation manuelle production.
  • Gestion des migrations.
  • Stratégie de rollback automatisée ou manuelle.