đŸ› ïž Guide des Commandes Make =========================== Ce guide liste toutes les commandes ``make`` disponibles pour KoproGo. 📋 Voir toutes les commandes ---------------------------- .. code-block:: bash make help Affiche la liste de toutes les commandes avec leur description. ---- 🚀 Setup et Installation ------------------------ Setup complet (premiĂšre utilisation) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make setup Cette commande fait **tout** automatiquement : * ✅ Installe les dĂ©pendances npm * ✅ Installe Playwright + navigateurs * ✅ DĂ©marre PostgreSQL via Docker * ✅ ExĂ©cute les migrations de base de donnĂ©es **C'est tout ce dont vous avez besoin pour dĂ©marrer!** Installation manuelle ^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make install # Installe seulement les dĂ©pendances npm make install-all # Installe npm + Playwright ---- đŸ’» DĂ©veloppement ---------------- DĂ©marrer l'environnement de dĂ©veloppement ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make dev # Backend only (Rust avec hot-reload) make dev-all # Tous les services (backend + postgres + frontend) make dev-frontend # Frontend only (Astro + Svelte) **Workflow recommandĂ© :** **Terminal 1:** .. code-block:: bash make dev # DĂ©marre backend + PostgreSQL **Terminal 2:** .. code-block:: bash make dev-frontend # DĂ©marre le frontend Puis ouvrir : * Frontend: http://localhost:3000 * Backend API: http://localhost:8080 ---- đŸ§Ș Tests -------- Tests Backend (Rust) ^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make test # Tous les tests backend + E2E complets make test-unit # Tests unitaires seulement make test-integration # Tests d'intĂ©gration make test-bdd # Tests BDD (Cucumber) make test-e2e-backend # Tests E2E backend (Rust/Actix) Tests E2E Complets (Frontend + Backend) đŸŽ„ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les tests E2E avec Playwright testent **toute la stack** et permettent d'enregistrer des **vidĂ©os de documentation** Ă  publier dans ``docs/_static/videos/`` (commit requis). Installation (une seule fois) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash make test-e2e-install Installe Playwright et Chromium avec toutes les dĂ©pendances. Lancer les tests ~~~~~~~~~~~~~~~~ .. code-block:: bash make codegen # Playwright codegen (DEVICE=mobile pour iPhone 13) make test-e2e-full # Lance tous les tests E2E + gĂ©nĂšre les vidĂ©os localement make test-e2e-ui # Mode UI interactif (recommandĂ©) make test-e2e-headed # Voir le navigateur en action make test-e2e-debug # Mode debug pas Ă  pas make test-e2e-report # Ouvrir le rapport HTML avec vidĂ©os Workflow recommandĂ© ~~~~~~~~~~~~~~~~~~~ **DĂ©veloppement:** .. code-block:: bash make test-e2e-ui # Interface graphique interactive **CI/CD ou validation finale:** .. code-block:: bash make test-e2e-full # GĂ©nĂšre toutes les vidĂ©os localement make test-e2e-report # Voir les rĂ©sultats # AprĂšs validation, synchroniser et commiter les vidĂ©os : make docs-sync-videos **Debugging:** .. code-block:: bash make test-e2e-debug # Mode pas Ă  pas Tests de Performance ^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make bench # Benchmarks Rust ---- 📊 Couverture et QualitĂ© ------------------------ .. code-block:: bash make coverage # GĂ©nĂšre un rapport de couverture make lint # VĂ©rifie le code (fmt + clippy + build) make format # Formate le code (Rust + JS/TS) make audit # Audit de sĂ©curitĂ© (Cargo + npm) ---- đŸ—ïž Build -------- .. code-block:: bash make build # Build release (backend + frontend) make clean # Nettoie les artefacts de build ---- 🐳 Docker --------- .. code-block:: bash make docker-up # DĂ©marre tous les services Docker make docker-down # ArrĂȘte tous les services Docker make docker-build # Build les images Docker make docker-logs # Affiche les logs Docker ---- đŸ—ïž Infrastructure (DĂ©ploiement VPS) ----------------------------------- DĂ©ploiement automatisĂ© ^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make setup-infra # DĂ©ploiement complet VPS OVH (Terraform + Ansible + GitOps) make ci # Pipeline CI complet (format, lint, tests, audit) **\ ``make setup-infra``\ ** dĂ©ploie automatiquement : * ✅ Provisionne VPS OVH avec Terraform * ✅ Configure serveur avec Ansible (Docker, Firewall, Fail2ban) * ✅ DĂ©ploie Docker Compose (Traefik + Backend + Frontend + PostgreSQL) * ✅ Configure DNS automatique (optionnel) * ✅ Active GitOps (auto-update toutes les 3 minutes) * ✅ Configure backups PostgreSQL (quotidiens) **DurĂ©e** : ~20-30 minutes **\ ``make ci``\ ** exĂ©cute : * ✅ ``make format`` - Formate le code (Rust + Frontend) * ✅ ``make lint`` - VĂ©rifie la qualitĂ© (clippy + checks) * ✅ ``make test`` - Lance tous les tests * ✅ ``make audit`` - Audit de sĂ©curitĂ© (Cargo + npm) **Documentation complĂšte** : `docs/deployment/ `_ ---- đŸ—„ïž Base de DonnĂ©es ------------------ .. code-block:: bash make migrate # ExĂ©cute les migrations SQLx make seed # Remplit la base avec des donnĂ©es de test ---- 📚 Documentation ---------------- .. code-block:: bash make docs # GĂ©nĂšre et ouvre la documentation Rust ---- 🎯 Workflows Courants --------------------- 1. Nouvelle installation du projet ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash git clone cd koprogo make setup # Setup complet automatique make dev # DĂ©marrer le dĂ©veloppement 2. DĂ©veloppement quotidien ^^^^^^^^^^^^^^^^^^^^^^^^^^ **Terminal 1:** .. code-block:: bash make dev # Backend + PostgreSQL **Terminal 2:** .. code-block:: bash make dev-frontend # Frontend avec hot-reload 3. Avant de commit ^^^^^^^^^^^^^^^^^^ .. code-block:: bash make format # Formater le code make lint # VĂ©rifier la qualitĂ© make test # Lancer tous les tests 4. Tester une nouvelle fonctionnalitĂ© ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # DĂ©velopper la feature... # Tester make test-e2e-ui # Tests E2E en mode interactif # GĂ©nĂ©rer les vidĂ©os de documentation make test-e2e-full # GĂ©nĂšre les vidĂ©os make test-e2e-report # Voir les vidĂ©os 5. CI/CD local ^^^^^^^^^^^^^^ .. code-block:: bash make clean make build make test make test-e2e-full make audit 6. Debugging des tests E2E ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # ProblĂšme dans les tests? make test-e2e-headed # Voir le navigateur # Toujours pas clair? make test-e2e-debug # Mode debug pas Ă  pas # Voir ce qui s'est passĂ© make test-e2e-report # Voir les vidĂ©os + screenshots ---- đŸ“č Tests E2E - Exemples de Commandes ------------------------------------ DĂ©veloppement d'un nouveau test ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # 1. CrĂ©er le fichier de test cd frontend/tests/e2e touch ma-feature.spec.ts # 2. DĂ©velopper le test en mode UI make test-e2e-ui # 3. Valider et gĂ©nĂ©rer la vidĂ©o make test-e2e-full # 4. Voir le rĂ©sultat make test-e2e-report DĂ©monstration au client ^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # Option 1: Lancer les tests en live make test-e2e-headed # Option 2: Montrer les vidĂ©os dĂ©jĂ  gĂ©nĂ©rĂ©es make test-e2e-report Debugging d'un test qui Ă©choue ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # 1. Voir la vidĂ©o de l'Ă©chec make test-e2e-report # 2. Debug pas Ă  pas make test-e2e-debug # 3. Relancer en voyant le navigateur make test-e2e-headed ---- 🎬 VidĂ©os de Documentation -------------------------- Les vidĂ©os gĂ©nĂ©rĂ©es par ``make test-e2e-full`` se trouvent dans : .. code-block:: frontend/test-results/ ├── auth-Authentication-Flow-should-login-successfully-chromium/ │ └── video.webm ├── pwa-offline-PWA-Capabilities-should-work-offline-chromium/ │ └── video.webm └── dashboards-Syndic-Dashboard-chromium/ └── video.webm **Pour les voir :** .. code-block:: bash make test-e2e-report ---- 🔧 Variables d'Environnement ---------------------------- Les commandes make utilisent les variables d'environnement dĂ©finies dans ``.env`` : .. code-block:: bash DATABASE_URL=postgresql://koprogo:koprogo123@localhost:5432/koprogo_db JWT_SECRET=your-secret-key-change-this-in-production SERVER_HOST=127.0.0.1 SERVER_PORT=8080 ---- 💡 Tips ------- Performances des tests E2E ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # Tests rapides (headless) make test-e2e-full # Tests lents mais visibles (headed) make test-e2e-headed Nettoyage complet ^^^^^^^^^^^^^^^^^ .. code-block:: bash make clean make docker-down docker volume prune -f RĂ©initialisation de la base de donnĂ©es ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash make docker-down docker volume rm koprogo_postgres_data make docker-up make migrate make seed ---- 📖 Documentation SupplĂ©mentaire ------------------------------- * {doc}\ ``E2E_TESTING_GUIDE`` - Guide complet des tests E2E * {doc}\ ``../frontend/tests/e2e/README`` - Documentation dĂ©taillĂ©e des tests ---- 🆘 Aide ------- Si une commande Ă©choue : #. **VĂ©rifier les services** : ``make docker-up`` #. **VĂ©rifier les migrations** : ``make migrate`` #. **Nettoyer et rebuild** : ``make clean && make build`` #. **Setup complet** : ``make setup`` Pour voir toutes les commandes disponibles : .. code-block:: bash make help