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 15 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-5Pipeline, anatomie YAML, validation, runners, artifacts/cache
Contrôle6-9Variables, rules, déclencheurs, environnements
Qualité10Rapports junit, coverage
Débogage11-13Pending, skip, logs/retry/timeouts
Synthèse14-15Packaging, pipeline complet

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

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. Valider son pipelinePipeline Editor, CI Lint, API, IDEDétecter les erreurs YAML avant push
4. Debug : lire les logsLogs, sections, erreursComprendre pourquoi un job échoue
5. RunnersExecutors, tags, shared/specificSavoir où s’exécute un job
6. Artifacts vs cacheStockage, rétention, performanceOptimiser les builds
ModuleContenuCompétence clé
7. Variables & contexteScopes, CI_*, protected, fileParamétrer les jobs
8. Conditions (rules)if, changes, exists, whenContrôler quand un job s’exécute
9. DéclencheursPush, MR, tags, schedules, manualComprendre les sources de pipeline
10. Environnementsdev/staging/prod, stop actionsGérer les déploiements
ModuleContenuCompétence clé
11. Qualité & testsjunit, coverage, artifacts reportsExploiter les résultats de tests
ModuleContenuCompétence clé
12. Dépannage “pending”Runner absent, tags, quotasDébloquer un job
13. Dépannage “skip”workflow:rules, rules, only/exceptComprendre pourquoi ça ne démarre pas
ModuleContenuCompétence clé
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.

Ce site vous est utile ?

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

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.