GitLab CI/CD permet l'automatisation des tests, builds et déploiements grâce à des pipelines intégrés dans la plateforme GitLab.
GitLab CI/CD est un outil d'intégration continue (CI) et de déploiement continu (CD) intégré à GitLab. Il permet d'automatiser les processus de test, de build et de déploiement des applications à l'aide de pipelines définis dans un fichier .gitlab-ci.yml.
Un pipeline est un ensemble de tâches automatisées qui s'exécutent suite à un événement (push, merge request, etc.). Un pipeline peut contenir plusieurs stages.
Les stages sont des étapes du pipeline, exécutées séquentiellement. Par exemple :
Les jobs sont des tâches exécutées dans un stage donné. Par exemple :
test dans le stage test exécute pytest.deploy dans le stage deploy pousse l'application sur un serveur.Les runners sont des agents exécutant les jobs. Il existe plusieurs types de runners :
.gitlab-ci.ymlLe fichier .gitlab-ci.yml définit la configuration du pipeline.
stages: - build - test - deploy job_build: stage: build script: - echo "Building the application" job_test: stage: test script: - echo "Running tests" job_deploy: stage: deploy script: - echo "Deploying the application"
On peut configurer différents environnements (staging, production) :
stages: - test - deploy test: stage: test script: - echo "Running tests" deploy_production: stage: deploy environment: production script: - echo "Deploying to production"
GitLab permet l'utilisation de variables d'environnement définies dans les settings du projet.
variables: APP_ENV: production deploy: stage: deploy script: - echo "Deploying in $APP_ENV mode"
On peut exécuter des jobs dans des containers Docker spécifiques.
image: python:3.9 stages: - test test: stage: test script: - python --version - pip install -r requirements.txt - pytest
On peut définir des règles pour exécuter les jobs uniquement dans certaines conditions.
deploy: stage: deploy script: - echo "Deploying..." only: - main
Pour déployer sur un serveur distant via SSH :
stages: - deploy deploy: stage: deploy script: - ssh user@server "cd /app && git pull" only: - main
Visualiser les pipelines
Logs des jobs
Re-lancer un pipeline
GitLab CI/CD permet d'automatiser l'intégration et le déploiement des applications de manière efficace et reproductible. Avec .gitlab-ci.yml, on peut définir des pipelines adaptés aux besoins de chaque projet.