Git & GitLab
Git
Git est le VCS (Version Control System) décentralisé de référence dans toute démarche DevOps. Un repo Git contient les fichiers du projet et l'intégralité de leur historique de modifications, permettant la collaboration, le suivi des changements et les retours arrière. Sans dépôt Git, pas de CI/CD possible — il est la pierre angulaire de l'automatisation.
Commandes & concepts clés :
git clone — récupère un repo distant en local
git commit — enregistre un snapshot des modifications
git push / pull — synchronise le repo local avec le remote
Chaque commit sur le remote peut déclencher un pipeline automatiquement
GitLab : Plateforme DevOps intégrée
GitLab est une plateforme web de gestion de code source basée sur Git, utilisable en SaaS (gitlab.com) ou en self-hosted (OnPrem). Elle intègre nativement : gestion de dépôts, suivi de bugs, revue de code, CI/CD, et qualité de code
Pipeline GitLab CI (.gitlab-ci.yml)
Le fichier .gitlab-ci.yml, placé à la racine du repo, définit le pipeline. Il répond au format YAML et s'articule autour de trois notions :
| Concept | Rôle |
|---|---|
| Stage | Étape du pipeline (build, test, deploy…) |
| Job | Tâche exécutée dans un stage, avec un bloc script |
| Runner | Agent (VM ou physique) qui exécute les jobs CESI-MICSI-2026-DEVOPS-DAY-1.pdf |
Stages classiques d'un pipeline applicatif :
- build : compilation, construction de l'artefact ou de l'image Docker
- test : tests unitaires (pytest, JUnit…), analyse qualité (SonarQube)
- deploy : déploiement sur container ou VM
Continuous delivery vs deployment
Continuous Delivery → déclenchement manuel de la mise en prod
Continuous Deployment → chaîne entièrement automatisée, graal DevOps nécessitant une grande maturité
fonctionnalités avancées
Auto DevOps
Fonctionnalité GitLab automatisant l'intégralité du cycle de livraison (CI/CD) sans nécessiter la création manuelle d'un fichier .gitlab-ci.yml. Elle s'active au niveau d'un projet (pour les utilisateurs avec le rôle Maintainer) ou de tout un groupe (rôle Owner)
Hiérarchie et Héritage
Configurer les paramètres d'intégration continue à l'échelle d'un groupe permet de propager ces règles à tous les dépôts sous-jacents, standardisant ainsi les pratiques DevOps d'une équipe sans effort supplémentaire.