Aller au contenu
CI/CD & Automatisation medium

Labs Pipeline Craft, Pratique GitLab CI/CD

10 min de lecture

logo gitlab

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.

  • 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

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, /items en 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.

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.

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.

  1. Ouvrez le dépôt original

    Rendez-vous sur gitlab.com/Bob74/pipeline-craft.

  2. Cliquez sur Fork (bouton en haut à droite)

    Gardez les paramètres par défaut (votre namespace personnel, visibilité publique) et validez avec Fork project.

  3. 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.

Fenêtre de terminal
# Remplacez <votre-pseudo> par votre nom d'utilisateur GitLab
git clone https://gitlab.com/<votre-pseudo>/pipeline-craft.git
cd pipeline-craft

Vous 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 »
Fenêtre de terminal
# Exemple pour le Lab 01
git checkout starter/lab-01

La 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).

Suivez les instructions du lab, modifiez les fichiers demandés, puis poussez :

Fenêtre de terminal
git add -A
git commit -m "ci: solution lab 01"
git push origin starter/lab-01

Ouvrez Build > Pipelines sur votre projet GitLab pour voir le résultat. Pipeline vert ? Passez au lab suivant.

La branche solution/lab-XX contient la correction complète. Comparez votre travail ou basculez dessus pour observer le résultat attendu :

Fenêtre de terminal
# Voir ce qui diffère entre votre point de départ et la solution
git diff origin/starter/lab-01..origin/solution/lab-01
# Ou observer directement la solution
git checkout solution/lab-01
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 besoin

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.

Du premier pipeline à un pipeline complet avec validation, registries, rapports qualité et diagnostic avancé.

LabCompétence viséeLeçon liée
01 Premier pipelineÉcrire un .gitlab-ci.yml à 3 stagesPremier pipeline
02 Lire un échecDiagnostiquer un job rouge via les logsDebug logs
03 Images et runnersChoisir les bonnes images, Docker-in-DockerRunners
04 Artifacts et cacheTransmettre des fichiers, accélérer le pipelineArtifacts et cache
05 Sortir les secretsVariables protégées, masquage, .env.exampleVariables
06 Contrôler l'exécutionrules:, workflow: rules, déploiement conditionnelRules
07 Valider un pipelineglab ci lint, CI Lint, pré-validation localeValider son pipeline
08 Déclencher un pipelineSchedules, trigger tokens, $CI_PIPELINE_SOURCEDéclencheurs
09 Publier dans le registryContainer Registry, Package Registry, tagsRegistries
10 Rapports qualitéJUnit, coverage, badge, Code Quality dans les MRRapports qualité
11 Débugger un job bloquéDiagnostic pending/skipped, tags runnerDebug pending

Cache avancé, factorisation du YAML, templates, parallélisme, DAG et pipelines parent-enfant.

LabCompétence viséeLeçon liée
12 Accélérer le pipelineCache hashfiles, images slim, needs:DAG et parallélisme
13 DRY : extends et anchorsFactoriser le YAML avec extends: et ancresExtends et anchors
14 Templates partagésinclude: local, project, remote, templateTemplates
15 Matrices multi-versionsparallel:matrix pour tester Python 3.11 et 3.12Matrices
16 Pipeline parent-enfanttrigger:include, pipelines dynamiquesParent-enfant
17 Workflows branches et MRMR pipelines, merge trains, release flowWorkflows
18 Fiabilité et retryretry:, timeout:, interruptible:Fiabilité
19 Capstone industrielReconstruire un pipeline complet sur cahier des chargesCapstone

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 situationPoint de départ conseillé
Débutant en CI/CDLab 01, dans l'ordre
Vous maîtrisez déjà lint + test + buildLab 04 (cache et artifacts)
Vous êtes à l'aise sur les fondamentauxLab 12 (bloc Industrialisation)
Vous préparez la certification AssociateLabs 01 à 11, puis 18 et 19

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 :

  • 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

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn