Mise en place de workflow d’integration continue
À propos du cours
Une formation sur la mise en place de workflows d’intégration continue (CI) est indispensable pour tout développeur ou ingénieur DevOps moderne. En enseignant GitHub Actions, GitLab CI/CD et Jenkins, tu offres une vue comparative complète des solutions les plus utilisées en entreprise aujourd’hui 💼
🎯 Objectif de la formation
Apprendre à créer des pipelines d’intégration continue, à automatiser les tests, build et déploiements, et à comprendre comment choisir l’outil CI/CD adapté selon le contexte (GitHub Actions, GitLab CI/CD, Jenkins).
🧭 Plan structuré de la formation : CI avec GitHub, GitLab, Jenkins
🟢 Module 1 : Introduction à l’intégration continue (CI)
-
🧠 Qu’est-ce que la CI/CD ?
-
📈 Avantages : rapidité, fiabilité, détection d’erreurs
-
🔁 Cycle DevOps : commit > test > build > déploiement
-
📂 Exemple de projet à automatiser : app Java Spring ou Node.js + tests
🔷 Partie 1 – GitHub Actions
⚙️ Module 2 : GitHub Actions – Débuter
-
📂 Structure du fichier
.github/workflows/main.yml
-
🎯 Déclencheurs (
on: push
,pull_request
,schedule
) -
🛠️ Jobs, steps, runners (Linux, Windows)
-
Exemple : lancer des tests JUnit sur push
🔁 Module 3 : Workflow complet
-
Build Java/Maven ou Node/Angular
-
Lancer les tests unitaires
-
Générer artefacts
-
📦 (Bonus) Déploiement Docker + push DockerHub
🔶 Partie 2 – GitLab CI/CD
🧾 Module 4 : GitLab CI/CD – Bases
-
Présentation de
.gitlab-ci.yml
-
Déclencheurs, jobs, stages
-
Exécution en pipeline GitLab Runners (shared ou custom)
⚙️ Module 5 : Pipeline complet GitLab
-
Stage
build
,test
,deploy
-
Générer artefacts
-
Notifications par email ou Slack
-
📤 Déploiement sur GitLab Pages ou serveur externe
⚙️ Partie 3 – Jenkins
🏗️ Module 6 : Jenkins – Installation et configuration
-
Installation locale ou Dockerisée
-
Configuration d’un projet freestyle
-
Mise en place d’un pipeline multibranches
🧰 Module 7 : Jenkins Pipeline as Code
-
Script
Jenkinsfile
(DSL Groovy) -
Stages : checkout, test, build, deploy
-
Intégration avec GitHub et GitLab via Webhooks
-
Plugins utiles : Docker, Slack, JUnit, SonarQube…
📊 Module 8 : Comparatif des outils
Outil | Facilité | Cloud-ready | Extensibilité | Cas idéal |
---|---|---|---|---|
GitHub Actions | ⭐⭐⭐⭐ | ✅ Oui | ⭐⭐⭐⭐ | Projets GitHub |
GitLab CI/CD | ⭐⭐⭐⭐ | ✅ Oui | ⭐⭐⭐ | GitLab cloud/self-hosted |
Jenkins | ⭐⭐ | ❌ (self-host) | ⭐⭐⭐⭐⭐ | Systèmes complexes, entreprise |
✅ Compétences acquises à la fin
-
Comprendre et créer des pipelines CI dans les 3 environnements
-
Automatiser tests, build, packaging, déploiement
-
Comparer GitHub Actions, GitLab CI/CD et Jenkins pour choisir le bon outil
-
Créer un workflow CI DevOps complet
💡 Astuce pédagogique
Propose 3 projets :
-
🚀 Un mini projet Angular ou Spring (tests + build + CI)
-
📦 Un déploiement Dockerisé
-
⚙️ Un projet avancé avec Jenkins + artefacts + webhook Git
🧰 Outils utilisés dans la formation
Besoin | Outil recommandé |
---|---|
Repo Git en ligne | GitHub + GitLab |
Build backend | Maven / Gradle (Java) |
Build frontend | Angular CLI / npm / yarn |
Conteneurisation | Docker, DockerHub |
Tests | JUnit, Jasmine/Karma, Jest |
Déploiement (bonus) | GitHub Pages, Heroku, Vercel, VPS |