Ce dossier contient l'ensemble de la configuration CI/CD pour la plateforme MaaS, incluant les workflows GitHub Actions, les templates d'issues et de pull requests, et les configurations de dépendances.
.github/
├── workflows/ # GitHub Actions workflows
│ ├── ci.yml # Intégration continue
│ ├── docker-build.yml # Build et push des images Docker
│ ├── deploy-dev.yml # Déploiement en développement
│ ├── deploy-staging.yml # Déploiement en staging
│ ├── deploy-prod.yml # Déploiement en production
│ ├── security-scan.yml # Scans de sécurité quotidiens
│ └── quality-checks.yml # Vérifications qualité sur PRs
├── issue_template/ # Templates d'issues
│ ├── bug_report.md
│ ├── feature_request.md
│ ├── performance_issue.md
│ ├── security_issue.md
│ └── config.yml
├── dependabot.yml # Configuration Dependabot
├── CODEOWNERS # Propriétaires de code
└── pull_request_template.md # Template de PR
Déclenchement: Push/PR sur main et develop
Jobs:
- Code quality & formatting
- Build & test (matrice par service)
- Tests d'intégration
- Code coverage (seuil minimum: 80%)
- SonarQube analysis
- Dependency scanning (Snyk, Trivy)
- SAST (CodeQL)
- Secret scanning (TruffleHog)
Durée estimée: 15-25 minutes
Déclenchement: Push sur main, tags v*.*.*, PRs
Jobs:
- Build multi-platform (amd64, arm64)
- Scan de sécurité (Trivy, Grype)
- Push vers GitHub Container Registry
- Génération SBOM
- Nettoyage des anciennes images
Durée estimée: 10-20 minutes
Déclenchement: Push sur main
Jobs:
- Validation des manifestes Kubernetes
- Déploiement sur cluster dev
- Migrations de base de données
- Health checks
- Smoke tests
Durée estimée: 10-15 minutes
Déclenchement: Tags v*.*.*-rc*, v*.*.*-beta*, manuel
Jobs:
- Validation pré-déploiement
- Approbation manuelle requise
- Déploiement sur staging
- Tests d'intégration
- Tests de performance (k6)
- Tests E2E (Playwright)
Durée estimée: 30-45 minutes
Déclenchement: Release publiée, manuel
Stratégies de déploiement:
- Blue-Green (par défaut)
- Canary (10% → 50% → 100%)
- Rolling
Jobs:
- Vérifications pré-production
- Approbation manuelle obligatoire
- Backup de la base de données
- Déploiement avec stratégie choisie
- Monitoring et validation
- Rollback automatique en cas d'échec
Durée estimée: 20-40 minutes
Déclenchement: Quotidien (2h UTC), manuel, changements de dépendances
Jobs:
- Dependency scanning (Snyk, Trivy, OWASP)
- Container scanning (tous les services)
- Secret scanning (TruffleHog, Gitleaks)
- SAST (CodeQL, SecurityCodeScan)
- IaC scanning (Trivy, Checkov)
- DAST (OWASP ZAP)
- License compliance
Durée estimée: 25-35 minutes
Déclenchement: PRs
Jobs:
- Code quality analysis
- Test coverage (minimum 80%)
- Security vulnerability check
- Code style & formatting
- Documentation check
- Breaking change detection
- PR size check
- Quality gate summary
Durée estimée: 10-15 minutes
Les secrets suivants doivent être configurés dans GitHub Settings > Secrets and variables > Actions:
KUBECONFIG_DEV # Base64 encoded kubeconfig for dev
KUBECONFIG_STAGING # Base64 encoded kubeconfig for staging
KUBECONFIG_PROD # Base64 encoded kubeconfig for production
DB_PASSWORD_DEV
DB_PASSWORD_STAGING
DB_PASSWORD_PROD
REDIS_PASSWORD_DEV
REDIS_PASSWORD_STAGING
REDIS_PASSWORD_PROD
RABBITMQ_PASSWORD_DEV
RABBITMQ_PASSWORD_STAGING
RABBITMQ_PASSWORD_PROD
JWT_SECRET_DEV
JWT_SECRET_STAGING
JWT_SECRET_PROD
STRIPE_API_KEY_STAGING
STRIPE_API_KEY_PROD
SONAR_TOKEN # SonarQube token
SONAR_HOST_URL # SonarQube server URL
SNYK_TOKEN # Snyk API token
CODECOV_TOKEN # Codecov upload token
FOSSA_API_KEY # FOSSA license scanning (optional)
GITLEAKS_LICENSE # Gitleaks Pro license (optional)
SLACK_WEBHOOK_URL # Slack webhook for notifications
TEST_USER_EMAIL # Test user for staging tests
TEST_USER_PASSWORD # Test user password
Créer les environments suivants dans GitHub Settings > Environments:
- Auto-deployment: Enabled
- Protection rules: None
- Required reviewers: Platform team lead
- Wait timer: 0 minutes
- Required reviewers: None
- Deployment branches: Tags matching
v*.*.*-rc*,v*.*.*-beta*
- Required reviewers: 2 members from platform-team
- Wait timer: 5 minutes
- Required reviewers: None
- Deployment branches: Tags matching
v*.*.*(releases only)
Dependabot est configuré pour:
- Updates hebdomadaires des packages NuGet
- Updates des images Docker
- Updates des GitHub Actions
- Groupement des dépendances Microsoft
- Pull requests limitées par service
Configuration dans /home/user/trip/.github/dependabot.yml
Le fichier CODEOWNERS définit les équipes responsables de chaque partie du code:
- @platform-team - Propriétaires globaux
- @devops-team - CI/CD et infrastructure
- @security-team - Code sensible à la sécurité
- @qa-team - Tests
- Service teams - Chaque microservice
Template complet incluant:
- Description et type de changement
- Testing et coverage
- Security checklist
- Documentation requirements
- Deployment notes
- Breaking changes
- Bug Report - Rapport de bug détaillé
- Feature Request - Demande de fonctionnalité
- Performance Issue - Problème de performance
- Security Issue - Problème de sécurité non critique
Ajouter ces badges dans votre README principal:


[](https://codecov.io/gh/your-org/maas-platform)- Créer une branche depuis
develop - Développer la fonctionnalité
- Push → CI pipeline s'exécute
- Créer une PR → Quality checks s'exécutent
- Review et merge → CI sur
develop
- Merge
develop→main - Docker images sont buildées automatiquement
- Déploiement automatique en dev
- Tag avec version (e.g.,
v1.2.3-rc1) - Déploiement en staging (après approbation)
- Tests complets sur staging
- Créer une release GitHub (e.g.,
v1.2.3) - Déploiement en production (après approbation)
- Créer une branche
hotfix/depuismain - Fix le problème
- Tag avec patch version (e.g.,
v1.2.4) - Déploiement direct en production
- Merge back vers
develop
Les notifications sont envoyées sur Slack pour:
- Déploiements (dev, staging, production)
- Échecs de build
- Scans de sécurité quotidiens
- Rollbacks
Tous les workflows créent des checks sur les PRs:
- ✅ CI Pipeline
- ✅ Quality Checks
- ✅ Security Scan
- ✅ Docker Build
- Always run tests locally avant de push
- Keep PRs small - Maximum 500 lignes de changement
- Write meaningful commit messages - Conventional commits
- Update tests avec chaque changement de code
- Review security scan results régulièrement
- Keep dependencies updated - Review Dependabot PRs
- Monitor coverage - Maintenir >80%
- Document breaking changes dans CHANGELOG
- Vérifier les logs dans l'onglet Actions
- Rechercher les messages d'erreur
- Vérifier les secrets/variables d'environnement
- Re-run le workflow si erreur temporaire
- Ajouter des tests unitaires
- Améliorer la couverture des branches
- Vérifier les fichiers exclus
- Review les vulnérabilités dans Security tab
- Mettre à jour les dépendances
- Appliquer les patches de sécurité
- Re-scanner après corrections
- Vérifier les logs Kubernetes
- Vérifier la santé des pods
- Rollback si nécessaire
- Investiguer et corriger
Pour toute question ou problème:
- Créer une issue avec le template approprié
- Contacter l'équipe DevOps
- Consulter la documentation: https://docs.maas.example.com
Les workflows doivent être revus et mis à jour:
- Mensuellement pour les optimisations
- Lors de changements d'architecture
- Lors de nouveaux services
- Pour les nouvelles versions d'actions
Un audit complet doit être effectué:
- Trimestriellement
- Après incidents de sécurité
- Avant certifications (SOC2, ISO27001)
Dernière mise à jour: 2025-11-16 Version: 1.0.0 Mainteneur: Platform Team