Aller au contenu
CI/CD & Automatisation medium

Fondamentaux GitLab CI/CD

8 min de lecture

Ce volet vous rend capable d’écrire et déboguer un pipeline GitLab CI/CD complet. En 14 modules, vous passez de « je ne sais pas ce qu’est un stage » à « je sais structurer un pipeline propre, gérer les variables, contrôler l’exécution avec rules, et surtout déboguer quand ça ne marche pas ».

Pas de théorie abstraite : chaque concept est rattaché à un cas d’usage réel. Vous apprenez à poser les bonnes questions, utiliser les bons mots-clés YAML, et résoudre les problèmes avant qu’ils n’arrivent en production.

Ce volet s’adresse à trois profils :

Le débutant motivé — Vous n’avez jamais écrit de .gitlab-ci.yml. Vous savez que GitLab peut « lancer des tests automatiquement », mais vous ne savez pas par où commencer. Vous voulez comprendre la logique avant de copier-coller des exemples.

Le dev qui subit la CI — Vous modifiez parfois le pipeline de votre projet, mais dès qu’un job reste « pending » ou « skip », vous êtes bloqué. Vous savez que le problème est « quelque part dans le YAML », mais vous ne savez pas où chercher.

L’ops qui veut structurer ses connaissances — Vous avez appris GitLab CI/CD sur le tas, en dépannant des pipelines cassés. Vous voulez combler les trous, comprendre les mécanismes sous-jacents, et avoir une méthodologie de débogage systématique.

À la fin de ce volet, vous serez capable de :

  1. Structurer un .gitlab-ci.yml : stages, jobs, scripts, avec les bonnes pratiques.
  2. Comprendre les runners : savoir pourquoi un job s’exécute sur telle machine, avec tels tags.
  3. Gérer artifacts et cache : stocker les résultats, accélérer les builds, éviter les pièges.
  4. Utiliser les variables : scopes, précédence, variables CI_*, secrets protégés.
  5. Contrôler l’exécution avec rules : conditions if, changes, exists, when.
  6. Configurer les déclencheurs : push, MR, tags, schedules, manual.
  7. Utiliser les environnements : dev, staging, prod, stop actions.
  8. Générer des rapports : junit, coverage, artifacts reports.
  9. Déboguer “pending” : identifier runner absent, tags mismatch, quotas.
  10. Déboguer “skip” : comprendre workflow:rules vs rules, only/except legacy.

Vous avez déjà vu un pipeline GitLab dans l’interface web. Vous avez vu des jobs verts, rouges, ou gris. Ce volet accroche les concepts sur ces expériences : on part de ce que vous voyez (le job bloqué) pour remonter à la cause (le runner mal taggé).

La formation suit un chemin structuré :

PhaseModulesCe que vous apprenez
Bases1-4Pipeline, anatomie YAML, runners, artifacts/cache
Contrôle5-8Variables, rules, déclencheurs, environnements
Qualité9Rapports junit, coverage
Débogage10-12Pending, skip, logs/retry/timeouts
Synthèse13-14Packaging, pipeline complet

Chaque module s’appuie sur les précédents. Vous ne verrez pas rules (module 6) avant d’avoir compris les variables (module 5).

On n’apprend pas les runners « parce que c’est au programme ». On les apprend parce que 30% des jobs “pending” sont des problèmes de tags. On n’apprend pas workflow:rules pour la culture générale, mais parce que c’est la cause des pipelines qui ne démarrent pas.

ModuleContenuCompétence clé
1. CI/CD : les bases utilesConcepts pipeline, stage, jobComprendre le vocabulaire
2. Anatomie de .gitlab-ci.ymlStructure YAML, stages, jobs, scriptÉcrire un pipeline minimal
3. RunnersExecutors, tags, shared/specificSavoir où s’exécute un job
4. Artifacts vs cacheStockage, rétention, performanceOptimiser les builds
ModuleContenuCompétence clé
5. Variables & contexteScopes, CI_*, protected, fileParamétrer les jobs
6. Conditions (rules)if, changes, exists, whenContrôler quand un job s’exécute
7. DéclencheursPush, MR, tags, schedules, manualComprendre les sources de pipeline
8. Environnementsdev/staging/prod, stop actionsGérer les déploiements
ModuleContenuCompétence clé
9. Qualité & testsjunit, coverage, artifacts reportsExploiter les résultats de tests
ModuleContenuCompétence clé
10. Dépannage “pending”Runner absent, tags, quotasDébloquer un job
11. Dépannage “skip”workflow:rules, rules, only/exceptComprendre pourquoi ça ne démarre pas
12. Debug avancéLogs, retry, timeouts, CI_DEBUG_TRACEInvestiguer les échecs
ModuleContenuCompétence clé
13. PackagingBuild, publication, registryProduire des artefacts utilisables
14. Pipeline completMini-capstone, checklist prodAssembler tout ce que vous avez appris

Rythme : 2 à 3 modules par semaine. Chaque module demande 20 à 45 minutes de lecture + pratique.

Pratique systématique : Après chaque module, créez un repo de test et écrivez le YAML correspondant. Un concept non pratiqué est un concept oublié.

Prise de notes : Gardez une « cheatsheet » personnelle avec les mots-clés YAML et les patterns que vous découvrez. Elle vous servira en dépannage.

Vous aurez un pipeline de référence que vous pourrez adapter à vos projets. Ce pipeline inclura :

  • Une structure claire (stages logiques, jobs bien nommés)
  • Des variables bien scopées (projet, groupe, pipeline)
  • Des rules qui contrôlent précisément l’exécution
  • Des artifacts et cache configurés pour la performance
  • Une gestion des environnements (dev → staging → prod)
  • Des rapports de tests intégrés

Surtout, vous aurez une méthodologie de débogage : face à un job “pending”, “skip” ou “failed”, vous saurez exactement où chercher.