Formation CI/CD
Objectifs
Expliquer les principes et les enjeux du CI/CD.
Appliquer une stratégie Git adaptée à la CI.
Construire et diagnostiquer un pipeline CI.
Intégrer des tests automatisés dans un pipeline.
Mettre en œuvre des contrôles de qualité et de sécurité.
Optimiser un pipeline et gérer ses artefacts.
Configurer les environnements et les validations de déploiement.
Concevoir un pipeline de déploiement automatisé.
Évaluer un pipeline et proposer des améliorations.
Pré-requis
Participants
Programme de formation
Introduction au CI/CD
Pourquoi le CI/CD : intégration tardive, livraisons manuelles, risques et délais
Définitions : intégration continue, livraison continue, déploiement continu
Métriques DORA
- Fréquence de déploiement
- Délai de livraison des changements
- Taux d'échec des changements
- Temps de restauration du service
Panorama des outils (GitHub Actions, GitLab CI)
Présentation du fil rouge : une petite appli web (API + tests) à automatiser de bout en bout
Git pour la CI
Stratégies de branches
- Trunk-based development
- GitFlow
- Avantages et limites de chacune pour la CI
Pull requests et revue de code
Protection de branches : checks obligatoires avant fusion
Premier pipeline
Anatomie d'un workflow
- Evènements déclencheurs (events)
- Jobs et dépendance entre jobs
- Steps et actions réutilisables
- Runners
Syntaxe YAML d'un workflow
Pipeline de base : build + lint sur chaque push
Lecture des logs et diagnostic d'un pipeline en échec
Tests automatisés
Pyramide des tests : unitaires, intégration, de bout en bout
Couverture de code et rapports
Intégration des tests dans le pipeline
Seuil de couverture : faire échouer le pipeline s'il n'est pas atteint
Qualité et sécurité
Analyse statique du code et linters
Scan des dépendances (vulnérabilités connues)
Détection de secrets dans le dépôt
SBOM (inventaire des composants logiciels)
Artefacts et optimisation
Cache des dépendances
Matrices de build (plusieurs versions, plusieurs environnements)
Artefacts : produire, conserver et réutiliser entre jobs
Mesure et réduction de la durée des pipelines
Gestion des secrets dans le pipeline
Environnements et stratégies de déploiement
Environnements : dev, staging, production
Approbations manuelles
Déploiement automatisé
Choix de la cible : VM, Docker Compose ou Kubernetes selon le contexte
Pipeline complet
- Commit
- Tests
- Construction de l'image
- Déploiement en staging
- Validation manuelle
- Déploiement en production
Bonnes pratiques et pièges
Pipelines fragiles
Tests flaky (instables)
Dette CI
Gouvernance