DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesCréer son premier pipeline CI/CD avec GitLab CI

Module

Créez vos premiers pipelines CI/CD avec GitLab CI : stages, jobs et runners.

  • 1h30
  • Débutant
  • 6 exercices
Voir les exercices

Formation 100 % Linux

Tous les modules nécessitent un environnement Linux. Si vous êtes sur Windows, installez d'abord WSL (Windows Subsystem for Linux) avant de continuer.

Créer son premier pipeline CI/CD avec GitLab CI

🎯 Objectifs

  • ✅ Comprendre le fonctionnement de GitLab CI/CD
  • ✅ Créer un fichier .gitlab-ci.yml
  • ✅ Définir des stages et des jobs
  • ✅ Utiliser les runners partagés et self-hosted
  • ✅ Intégrer Docker dans vos pipelines

📋 Prérequis

PrérequisNiveau
GitIntermédiaire
DockerDébutant
Compte GitLabCréé sur gitlab.com

📖 Rappel CI/CD

CI (Intégration Continue) = build + tests automatiques à chaque push.

CD (Déploiement Continu) = déploiement automatique vers staging ou production.

💡 GitLab CI est l'outil CI/CD natif de GitLab. Pour une autre approche, consultez les modules GitHub Actions.


🦊 GitLab CI vs GitHub Actions

AspectGitLab CIGitHub Actions
Fichier config.gitlab-ci.yml.github/workflows/*.yml
RunnersPartagés ou self-hostedGitHub-hosted ou self-hosted
StructureStages → JobsJobs → Steps
Registry DockerIntégré nativementVia GitHub Packages
PlateformeAll-in-one DevOpsOutils séparés

🔧 Concepts Clés

ConceptDescription
PipelineEnsemble de stages exécutés à chaque push
StagePhase du pipeline (build, test, deploy)
JobTâche exécutée dans un stage
RunnerMachine qui exécute les jobs
ArtifactFichier produit par un job, transmis au suivant

Structure d'un pipeline :

Pipeline
├── Stage: build
│   └── Job: compile
├── Stage: test
│   ├── Job: unit-test
│   └── Job: lint
└── Stage: deploy
    └── Job: deploy-staging

💡 Les jobs d'un même stage s'exécutent en parallèle. Les stages s'exécutent séquentiellement.


🚀 Premier Pipeline

Créez un fichier .gitlab-ci.yml à la racine de votre projet :

yaml
stages:
  - build
  - test
  - deploy

build:
  stage: build
  image: node:20-alpine
  script:
    - npm ci
    - npm run build
  artifacts:
    paths:
      - dist/

test:
  stage: test
  image: node:20-alpine
  script:
    - npm ci
    - npm test

deploy:
  stage: deploy
  script:
    - echo "Déploiement en cours..."
  only:
    - main

Explication des mots-clés

Mot-cléRôle
stagesDéclare l'ordre des phases du pipeline
stageAssocie un job à un stage
imageImage Docker utilisée pour le job
scriptCommandes shell à exécuter
artifactsFichiers à conserver entre les stages
onlyBranches sur lesquelles le job s'exécute

🐳 Mot-clé image

Chaque job s'exécute dans un conteneur Docker. Choisissez l'image adaptée à votre projet :

ImageUsage
node:20-alpineProjets Node.js / JavaScript
python:3.12Projets Python
docker:latestBuild d'images Docker
maven:3.9Projets Java / Maven
alpine:latestScripts shell légers
yaml
job:
  image: python:3.12
  script:
    - pip install -r requirements.txt
    - pytest

⚙️ Runners

Runners partagés

GitLab.com fournit des runners partagés gratuits. Aucune configuration nécessaire.

Runners self-hosted

Installez un runner sur votre propre machine pour plus de contrôle.

Tags

Utilisez les tags pour cibler un runner spécifique :

yaml
job:
  tags:
    - docker
    - linux
  script:
    - echo "Exécuté sur un runner Linux avec Docker"

📦 Artefacts

Les artefacts permettent de passer des fichiers entre stages.

yaml
build:
  stage: build
  script:
    - npm run build
  artifacts:
    paths:
      - dist/
    expire_in: 1 week

💡 expire_in libère automatiquement l'espace de stockage après la durée spécifiée.

Le stage deploy peut ensuite utiliser le dossier dist/ produit par build.


👀 Voir les Résultats

  1. Allez dans CI/CD → Pipelines dans l'interface GitLab
  2. Chaque stage affiche un statut vert (✅) ou rouge (❌)
  3. Cliquez sur un job pour voir ses logs en temps réel

💡 Vous pouvez aussi relancer un job échoué directement depuis l'interface.


🔑 Variables Prédéfinies

GitLab injecte automatiquement des variables dans chaque job :

VariableContenu
$CI_COMMIT_SHAHash du commit
$CI_COMMIT_BRANCHBranche courante
$CI_PROJECT_NAMENom du projet
$CI_PIPELINE_IDID unique du pipeline
yaml
job:
  script:
    - echo "Commit $CI_COMMIT_SHA sur $CI_COMMIT_BRANCH"

❌ Erreurs Courantes

ErreurCauseSolution
yaml invalidSyntaxe YAML incorrecteValidez avec le linter CI de GitLab
image not foundImage Docker inexistanteVérifiez le nom sur Docker Hub
runner not availableAucun runner compatibleVérifiez les tags ou utilisez les runners partagés
script failedCommande en erreurLisez les logs du job
artifacts too largeFichiers trop volumineuxRéduisez les paths ou augmentez la limite

💡 Utilisez CI/CD → Editor dans GitLab pour valider votre YAML avant de push.


📌 Points Clés

  1. .gitlab-ci.yml à la racine déclenche automatiquement le pipeline
  2. Les stages définissent l'ordre, les jobs définissent les tâches
  3. Chaque job tourne dans un conteneur Docker via image:
  4. Les artefacts passent des fichiers entre stages
  5. Les runners partagés de GitLab.com sont gratuits et prêts à l'emploi

📚 Ressources

  • Documentation GitLab CI/CD
  • Référence `.gitlab-ci.yml`
  • Linter CI intégré
  • Variables prédéfinies

🚀 Prochaines étapes

Vous avez créé vos premiers pipelines GitLab CI. Passez au niveau intermédiaire :

  1. GitLab CI : rules, cache et pipelines DAG - Rules, cache, services, pipelines DAG et templates

Exercices Pratiques

6 exercices pour mettre en pratique

01

01 - Créer son premier fichier .gitlab-ci.yml

15 minutesDébutant
02

02 - Organiser les stages et les jobs

20 minutesDébutant
03

03 - Utiliser les variables prédéfinies GitLab

15 minutesDébutant
04

04 - Publier des artefacts dans GitLab CI

20 minutesDébutant
05

05 - Utiliser Docker dans un pipeline GitLab CI

20 minutesDébutant
06

06 - Projet Capstone : Créer son premier pipeline GitLab CI pour une application web

40 minutesIntermédiaire
Retour aux modules

Sur cette page

  • 🎯 Objectifs
  • 📋 Prérequis
  • 📖 Rappel CI/CD
  • 🦊 GitLab CI vs GitHub Actions
  • 🔧 Concepts Clés
  • 🚀 Premier Pipeline
  • Explication des mots-clés
  • 🐳 Mot-clé image
  • ⚙️ Runners
  • Runners partagés
  • Runners self-hosted
  • Tags
  • 📦 Artefacts
  • 👀 Voir les Résultats
  • 🔑 Variables Prédéfinies
  • ❌ Erreurs Courantes
  • 📌 Points Clés
  • 📚 Ressources
  • 🚀 Prochaines étapes