Intégration et déploiement continus avec GitHub Actions
Intégration et déploiement continus est un cours de niveau intermédiaire de 5 leçons (environ 1 h 30), avec 17 exercices et 17 questions de quiz. Prérequis : Git et GitHub, Tests automatisés. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.
- Cloud et DevOps
- Intermédiaire
- 5 leçons
- 1 h 30
- 17 exercices
- Environnement de projet complet (phase 2)
Le cours en bref
Ce cours vous apprend à construire un pipeline d'intégration et de déploiement continus avec GitHub Actions. Vous écrirez des workflows qui testent sur plusieurs versions, contrôlent la qualité, transmettent des artefacts, puis déploient automatiquement vers des environnements protégés. Vous terminerez par la sécurité : secrets, permissions minimales, OIDC et épinglage des actions.
Ce que tu sauras faire
- Écrire un workflow GitHub Actions avec déclencheurs, jobs dépendants et étapes
- Rendre la CI obligatoire grâce aux protections de branche
- Tester sur une matrice de versions avec cache, lint, couverture et base de données de service
- Transmettre des artefacts et des sorties entre jobs et publier une release sur tag
- Déployer automatiquement vers staging puis production avec approbation, verrou de concurrence, test de fumée et retour arrière
- Sécuriser un pipeline : secrets d'environnement, permissions minimales, OIDC et actions épinglées
Programme des 5 leçons
- Expliquer ce que sont l'intégration continue et le déploiement continu
- Lire et écrire un workflow : déclencheurs, jobs, étapes, runners
- Enchaîner des jobs avec needs et protéger la branche principale par des vérifications obligatoires
Intégration continueWorkflow GitHub ActionsDéclencheursProtection de branche
- 02
Tests et qualité dans la CI
- Tester sur plusieurs versions avec une matrice
- Accélérer le pipeline grâce au cache des dépendances
- Ajouter lint, couverture minimale et base de données de test dans le pipeline
Matrice de versionsCache des dépendancesLint et couvertureConteneurs de service
- 03
Artefacts, sorties de jobs et releases
- Transmettre des fichiers d'un job à l'autre avec les artefacts
- Passer une valeur entre étapes et entre jobs avec les sorties
- Publier une release à partir d'un tag de version
- 04
Déploiement automatique et environnements
- Déployer automatiquement après la CI, uniquement depuis main
- Protéger la production par un environnement avec approbation
- Éviter les déploiements concurrents, vérifier après déploiement et savoir revenir en arrière
Déploiement continuEnvironnements de déploiementConcurrence des déploiementsRetour arrière
- 05
Secrets et sécurité du pipeline
- Gérer secrets et variables au bon niveau
- Réduire les droits du jeton GITHUB_TOKEN
- Se connecter au cloud sans clé longue durée et sécuriser la chaîne d'approvisionnement
Secrets et variablesPermissions du jetonFédération OIDCSécurité de la chaîne CI
Projet final
Pipeline CI/CD complet pour une application web
Pour une application du parcours (API Node.js, Python ou PHP avec une base PostgreSQL), mettez en place un pipeline GitHub Actions complet : lint et tests sur une matrice de versions, tests d'intégration contre Postgres, build unique transmis en artefact, déploiement automatique en staging depuis main avec test de fumée, production soumise à approbation, workflow de retour arrière et release sur tag. Le pipeline respecte la liste de contrôle de sécurité du cours.
Livrables
- Les fichiers .github/workflows/ci-cd.yml, release.yml et rollback.yml
- La configuration des environnements staging et production (captures ou description des règles et des secrets attendus)
- Une règle de protection de main exigeant les checks de CI
- Un README décrivant le flux, les secrets et variables nécessaires et la procédure de retour arrière
Critères d'évaluation
- Une pull request avec un test cassé ne peut pas être fusionnée
- Le même artefact construit une fois est vérifié puis déployé
- La production n'est déployée qu'après staging réussi, test de fumée vert et approbation
- Deux déploiements ne peuvent pas s'exécuter simultanément et le retour arrière est démontré
- Permissions minimales, secrets dans les environnements, aucune entrée utilisateur injectée dans run, actions tierces épinglées
Questions fréquentes
Faut-il connaître Docker pour suivre ce cours ?
Non. Le cours se concentre sur le pipeline lui-même. La construction et la publication d'images Docker sont traitées dans le cours Docker et déploiement, auquel les exemples renvoient.
Les notions sont-elles valables hors de GitHub ?
Oui. Déclencheurs, jobs, artefacts, environnements et secrets existent sous des noms proches dans GitLab CI, Azure Pipelines ou Jenkins. Seule la syntaxe change.
Quelle différence entre livraison continue et déploiement continu ?
En livraison continue, chaque version validée est prête à partir mais une personne déclenche la mise en production. En déploiement continu, elle part automatiquement. Un environnement avec approbation permet de passer de l'un à l'autre.
Ai-je besoin d'un compte cloud ?
Non pour l'essentiel : les exercices utilisent un dépôt GitHub et des déploiements simulés. La connexion OIDC à un fournisseur cloud est expliquée avec un exemple que vous pourrez appliquer à votre propre compte.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « Intégration et déploiement continus » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.