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
| Étape | Backend Laravel | Frontends |
|---|---|---|
| Installation | composer install | npm ci ou équivalent verrouillé. |
| Qualité | Pint, analyse ciblée si configurée. | ESLint. |
| Tests | PHPUnit / tests Laravel. | Tests frontend si présents. |
| Build | Cache config/routes si pertinent. | next build, vite build. |
| Artefact | Release ou code déployable. | Build statique ou app Node selon cible. |
| Déploiement | Script 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.