Exercice 01 : Créer son premier fichier .gitlab-ci.yml
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Écrire un fichier
.gitlab-ci.ymlvalide depuis zéro - ✅ Définir des
stageset desjobsavecscript: - ✅ Configurer une image Docker globale avec
image: - ✅ Déclencher un pipeline automatique sur
git push - ✅ Lire
$CI_COMMIT_BRANCHdans les logs d'un job
Durée estimée : 15 minutes
Difficulté : ⭐☆☆☆☆ (Débutant)
Prérequis :
- Un compte GitLab.com (gratuit)
- Git installé en local
📖 Contexte
GitLab CI/CD est piloté par un seul fichier : .gitlab-ci.yml, placé à la racine du dépôt. Quand vous poussez du code, GitLab lit ce fichier et exécute automatiquement les jobs définis dans des runners partagés (machines virtuelles fournies par GitLab.com).
📋 Énoncé
Créez un projet GitLab et son premier pipeline CI/CD composé d'un stage build et d'un stage test, chacun avec un job simple qui affiche un message et la branche courante.
🧭 Déroulement de l'exercice
Tâche 1 : Créer le projet sur GitLab.com
Connectez-vous à GitLab.com et créez un nouveau projet vide appelé mon-premier-pipeline. Initialisez-le avec un README.md puis clonez-le en local.
Indice : "New project" → "Create blank project". Cochez "Initialize repository with a README". Récupérez l'URL HTTPS ou SSH pour cloner.
Vérification : git clone réussit et le dossier local contient README.md.
Tâche 2 : Créer le fichier .gitlab-ci.yml
À la racine du projet, créez .gitlab-ci.yml avec deux stages (build et test) et une image globale alpine:3.19.
Indice :
`yamlstages:
- build
- test
>
image: alpine:3.19
`La clé
image:au niveau racine s'applique à tous les jobs qui ne définissent pas leur propre image.
Vérification : Le fichier existe à la racine du projet local.
Tâche 3 : Ajouter un job dans le stage build
Créez un job compile dans le stage build. Son script: doit afficher "Build en cours sur la branche : $CI_COMMIT_BRANCH".
Indice :
$CI_COMMIT_BRANCHest une variable prédéfinie injectée automatiquement par GitLab dans chaque job. Utilisezechopour l'afficher.
Vérification : Le job compile apparaît dans la section build du pipeline GitLab.
Tâche 4 : Ajouter un job dans le stage test
Créez un job unit-tests dans le stage test. Son script doit afficher "Tests lancés sur le commit : $CI_COMMIT_SHORT_SHA" puis simuler un succès avec exit 0.
Indice : Les stages s'exécutent dans l'ordre déclaré. Le stage
testne démarre qu'après la réussite complète du stagebuild.
Vérification : Dans le pipeline GitLab, les deux stages apparaissent en séquence avec statut vert.
Tâche 5 : Pousser et observer le pipeline
Faites un git add .gitlab-ci.yml, committez et poussez. Rendez-vous dans GitLab → CI/CD → Pipelines pour observer l'exécution.
Indice : Cliquez sur le numéro du pipeline pour voir le graphe des stages. Cliquez sur un job pour voir ses logs en temps réel.
Vérification : Les deux jobs affichent leurs messages dans les logs. $CI_COMMIT_BRANCH affiche le nom de votre branche (ex : main).
🗂️ Mini-Projet : Premier pipeline fonctionnel
Structure du pipeline :
Stage: build → Stage: test
───────────── ────────────
compile unit-testsCheckpoints de validation :
.gitlab-ci.ymlpasse le CI Lint de GitLab (CI/CD → CI Lint)- Le pipeline se déclenche automatiquement après
git push - Le job
compileaffiche la branche dans ses logs - Le job
unit-testss'exécute aprèscompileavec succès $CI_COMMIT_BRANCHest correctement valorisée dans les logs