GitLab CI/CD est le moteur d'integration et de livraison continues integre nativement a GitLab. Le pipeline est decrit dans un fichier .gitlab-ci.yml versionne, execute par des Runners (shell, Docker, Kubernetes). Il couvre tout le cycle DevSecOps : build, tests, SAST/DAST, conteneurisation, environnements dynamiques (review apps), deploiements multi-stages et Auto DevOps. Son integration registre/Container Registry, environnements et approbations en fait une plateforme de bout en bout, largement utilisee pour industrialiser des dizaines d'applications Spring Boot sur Kubernetes.
Cycle de livraison : Local → GitHub → CI/CD → Cloud
Local
GitHub
CI/CD
VPS
Articles approfondis
Article 1 / 5
GitLab CI/CD : fondamentaux et architecture
Le modele mental indispensable pour exploiter GitLab CI/CD sans le subir
Article 2 / 5
Installer et configurer GitLab CI/CD (approche industrialisee)
Une mise en place reproductible, versionnee et prete pour la production
Article 3 / 5
GitLab CI/CD dans une chaine CI/CD
Ou GitLab CI/CD intervient dans le pipeline, et comment le rendre fiable
Article 4 / 5
GitLab CI/CD en production : scalabilite et securite
Haute disponibilite, mise a l'echelle et durcissement
Article 5 / 5
GitLab CI/CD : depannage et bonnes pratiques
Pieges recurrents, symptomes et principes qui evitent la dette
Resume des commandes essentielles
gitlab-runner registerEnregistrer un runner aupres d'un projet/groupegitlab-runner runLancer le runner en mode foregroundgitlab-runner verify --deleteVerifier et purger les runners obsoletesgitlab-ci-localExecuter le pipeline localement avant pushstages: [build, test, deploy]Definir l'ordre des etapesscript: - mvn -B packageCommandes executees par un jobrules: - if: '$CI_COMMIT_BRANCH == "main"'Conditionner l'execution d'un jobartifacts: { paths: [target/*.jar], expire_in: 1 week }Conserver des artefactscache: { key: $CI_COMMIT_REF_SLUG, paths: [.m2/] }Cache de dependancesneeds: [build]DAG : demarrer un job des qu'une dependance est preteenvironment: { name: prod, url: https://app }Declarer un environnement deployableinclude: { project: 'group/ci-templates', file: '/jobs.yml' }Reutiliser des templates CItrigger: { project: 'group/downstream' }Pipeline multi-projetsCI_JOB_TOKEN / CI_REGISTRYVariables predefinies (auth registre)