
Les guides expliquent comment GitLab CI/CD fonctionne. Les labs vous font pratiquer. Pipeline Craft est une série de 19 exercices sur un vrai projet Python (FastAPI) : vous forkez le dépôt, vous écrivez du YAML, vous poussez, et le pipeline passe au vert ou au rouge, à vous de diagnostiquer. Chaque lab est rattaché à une leçon de la formation GitLab CI/CD et vous le retrouvez directement après cette leçon dans le parcours. Cette page vous explique comment installer votre copie du projet et jouer les labs.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Forker et cloner le projet Pipeline Craft pour travailler sur votre propre copie
- Jouer un lab de bout en bout : branche de départ, code, push, vérification du pipeline
- Vous débloquer en comparant votre travail à la branche solution
- Choisir par où commencer selon votre niveau et votre objectif
Le projet fil rouge : Pipeline Craft
Section intitulée « Le projet fil rouge : Pipeline Craft »Tous les labs s'appuient sur Pipeline Craft, une API REST écrite en Python (FastAPI). Le code est volontairement simple, car c'est le pipeline qui est au centre de chaque exercice, pas l'application.
Le dépôt contient :
- 6 endpoints (
/health,/version,/itemsen CRUD) - Des tests unitaires (pytest) et un linter (ruff)
- Un Dockerfile multi-stage
- Un script de déploiement simulé
Il est hébergé sur gitlab.com et embarque toutes les branches des labs : une branche starter/lab-XX (point de départ) et une branche solution/lab-XX (correction) pour chaque exercice.
Comment jouer les labs
Section intitulée « Comment jouer les labs »Le principe tient en trois gestes : vous créez votre copie du dépôt (un fork), vous la clonez en local, puis vous travaillez sur la branche de départ de chaque lab. Le fork et le clone ne se font qu'une seule fois.
Étape 1 : forkez le dépôt (une seule fois)
Section intitulée « Étape 1 : forkez le dépôt (une seule fois) »Un fork crée une copie du dépôt dans votre espace GitLab. Vous en êtes propriétaire, vous pouvez y pousser du code et voir vos propres pipelines s'exécuter.
-
Ouvrez le dépôt original
Rendez-vous sur gitlab.com/Bob74/pipeline-craft.
-
Cliquez sur Fork (bouton en haut à droite)
Gardez les paramètres par défaut (votre namespace personnel, visibilité publique) et validez avec Fork project.
-
Vous avez votre copie
Elle vit à l'adresse
gitlab.com/<votre-pseudo>/pipeline-craft. C'est là que vous travaillez pour tous les labs. Toutes les branches (starter/lab-01,solution/lab-01…) sont copiées automatiquement : pas besoin de re-forker pour chaque lab.
Étape 2 : clonez votre fork en local
Section intitulée « Étape 2 : clonez votre fork en local »# Remplacez <votre-pseudo> par votre nom d'utilisateur GitLabgit clone https://gitlab.com/<votre-pseudo>/pipeline-craft.gitcd pipeline-craftVous récupérez le projet sur votre machine. Listez les branches disponibles avec git branch -r : vous devez voir toutes les branches starter/* et solution/*.
Étape 3 : passez sur la branche de départ du lab
Section intitulée « Étape 3 : passez sur la branche de départ du lab »# Exemple pour le Lab 01git checkout starter/lab-01La branche starter/lab-XX contient l'état exact du projet au début du lab : parfois un pipeline cassé à réparer (Lab 02), parfois un pipeline qui marche mais sans optimisation (Lab 04), parfois aucun pipeline du tout (Lab 01).
Étape 4 : codez, poussez, vérifiez
Section intitulée « Étape 4 : codez, poussez, vérifiez »Suivez les instructions du lab, modifiez les fichiers demandés, puis poussez :
git add -Agit commit -m "ci: solution lab 01"git push origin starter/lab-01Ouvrez Build > Pipelines sur votre projet GitLab pour voir le résultat. Pipeline vert ? Passez au lab suivant.
Si vous bloquez
Section intitulée « Si vous bloquez »La branche solution/lab-XX contient la correction complète. Comparez votre travail ou basculez dessus pour observer le résultat attendu :
# Voir ce qui diffère entre votre point de départ et la solutiongit diff origin/starter/lab-01..origin/solution/lab-01
# Ou observer directement la solutiongit checkout solution/lab-01Le circuit en un coup d'œil
Section intitulée « Le circuit en un coup d'œil »gitlab.com/Bob74/pipeline-craft ← dépôt original (ne pas modifier) │ ▼ Fork (une seule fois)gitlab.com/<vous>/pipeline-craft ← votre copie (vous y poussez) │ ▼ git clone (une seule fois)~/pipeline-craft/ ← votre copie locale │ ├── git checkout starter/lab-01 ← point de départ du lab ├── … codez, committez, poussez … └── git checkout solution/lab-01 ← correction si besoinLes 19 labs
Section intitulée « Les 19 labs »Les labs suivent la progression de la formation. Ils sont conçus pour être joués dans l'ordre : chaque lab s'appuie sur le .gitlab-ci.yml construit au précédent. Si vous en sautez un, partez de la branche solution/lab-XX du lab d'avant. Dans le parcours, chaque lab apparaît juste après la leçon qu'il met en pratique.
Fondamentaux (labs 01 à 11)
Section intitulée « Fondamentaux (labs 01 à 11) »Du premier pipeline à un pipeline complet avec validation, registries, rapports qualité et diagnostic avancé.
| Lab | Compétence visée | Leçon liée |
|---|---|---|
| 01 Premier pipeline | Écrire un .gitlab-ci.yml à 3 stages | Premier pipeline |
| 02 Lire un échec | Diagnostiquer un job rouge via les logs | Debug logs |
| 03 Images et runners | Choisir les bonnes images, Docker-in-Docker | Runners |
| 04 Artifacts et cache | Transmettre des fichiers, accélérer le pipeline | Artifacts et cache |
| 05 Sortir les secrets | Variables protégées, masquage, .env.example | Variables |
| 06 Contrôler l'exécution | rules:, workflow: rules, déploiement conditionnel | Rules |
| 07 Valider un pipeline | glab ci lint, CI Lint, pré-validation locale | Valider son pipeline |
| 08 Déclencher un pipeline | Schedules, trigger tokens, $CI_PIPELINE_SOURCE | Déclencheurs |
| 09 Publier dans le registry | Container Registry, Package Registry, tags | Registries |
| 10 Rapports qualité | JUnit, coverage, badge, Code Quality dans les MR | Rapports qualité |
| 11 Débugger un job bloqué | Diagnostic pending/skipped, tags runner | Debug pending |
Industrialisation (labs 12 à 19)
Section intitulée « Industrialisation (labs 12 à 19) »Cache avancé, factorisation du YAML, templates, parallélisme, DAG et pipelines parent-enfant.
| Lab | Compétence visée | Leçon liée |
|---|---|---|
| 12 Accélérer le pipeline | Cache hashfiles, images slim, needs: | DAG et parallélisme |
| 13 DRY : extends et anchors | Factoriser le YAML avec extends: et ancres | Extends et anchors |
| 14 Templates partagés | include: local, project, remote, template | Templates |
| 15 Matrices multi-versions | parallel:matrix pour tester Python 3.11 et 3.12 | Matrices |
| 16 Pipeline parent-enfant | trigger:include, pipelines dynamiques | Parent-enfant |
| 17 Workflows branches et MR | MR pipelines, merge trains, release flow | Workflows |
| 18 Fiabilité et retry | retry:, timeout:, interruptible: | Fiabilité |
| 19 Capstone industriel | Reconstruire un pipeline complet sur cahier des charges | Capstone |
Par où commencer selon votre niveau
Section intitulée « Par où commencer selon votre niveau »Les labs sont numérotés dans l'ordre d'apprentissage, mais rien ne vous oblige à tout jouer si vous avez déjà des bases.
| Votre situation | Point de départ conseillé |
|---|---|
| Débutant en CI/CD | Lab 01, dans l'ordre |
| Vous maîtrisez déjà lint + test + build | Lab 04 (cache et artifacts) |
| Vous êtes à l'aise sur les fondamentaux | Lab 12 (bloc Industrialisation) |
| Vous préparez la certification Associate | Labs 01 à 11, puis 18 et 19 |
Variante homelab
Section intitulée « Variante homelab »Les labs fonctionnent sur gitlab.com avec les runners SaaS partagés. Si vous préférez un GitLab self-managed avec vos propres runners, les fichiers .gitlab-ci.yml restent identiques, seule l'infrastructure d'exécution change :
À retenir
Section intitulée « À retenir »- 19 labs progressifs sur un vrai projet Python, du premier pipeline à l'industrialisation
- Chaque lab cible une compétence précise, validée par un pipeline vert
- Le modèle fork + branche vous laisse travailler à votre rythme, avec la solution toujours disponible
- Dans le parcours, chaque lab suit la leçon qu'il met en pratique : lisez, puis pratiquez
- Une série sécurité viendra compléter les deux blocs actuels