Découvrez les bases de GitLab CI dans cette vidéo de démonstration, idéale pour les débutants et les personnes qui souhaitent approfondir leurs connaissances de GitLab CI.
Guide de démarrage rapide pour une intégration continue avec GitLab
Découvrez notre guide de démarrage rapide de GitLab CI dans lequel vous apprendrez à configurer un projet dans GitLab et à créer une première configuration d'intégration continue directement dans votre code. L'objectif est de vous aider à démarrer rapidement avec GitLab CI.
Ce guide vous explique comment :
- - Créer un nouveau projet.
- - Concevoir votre configuration CI/CD initiale et exécuter le pipeline.
- - Consulter et examiner les résultats de l'exécution.
- - Appliquer des conditions basées sur des règles pour contrôler l'exécution des jobs.
- - Tirer parti des modèles de pipeline pour une intégration fluide de vos configurations.
Intégration continue - prérequis
Au sein d'un projet, vous pouvez gérer différents composants tels que votre code base, la configuration de l'intégration continue, la planification, l'analyse des données ainsi que les membres de l'équipe. Dans ce guide, nous allons créer un nouveau projet vierge, contenant uniquement un fichier README.
- Créez un nouveau projet en cliquant sur le bouton « + » sur le côté droit de la barre supérieure, et sélectionnez Nouveau projet/dépôt
- Cliquez sur Créer un projet vide. Dans le champ de saisie situé sous `Nom du projet`, saisissez my-project.
- Cliquez sur Créer le projet.
- Félicitations ! Vous venez de créer votre premier projet.
Création du fichier de configuration
Définition des étapes du pipeline
stages: - build - test - package
Définir les jobs du pipeline
Définir un job de compilation
build-job: stage: build script: - echo "Hello " | tr -d "\n" > file1.txt - echo "world" > file2.txt - cat file1.txt file2.txt > compiled.txt artifacts: paths: - compiled.txt
Définir un job de test
test: stage: test script: cat compiled.txt | grep -q 'Hello world '
Définir un job d'empaquetage
package: stage: package script: cat compiled.txt | gzip > packaged.gz artifacts: paths: - packaged.gz
Voici à quoi votre pipeline complet devrait ressembler :
stages: # List of stages for jobs, and their order of execution - build - test - package build-job: stage: build script: - echo "Hello " | tr -d "\n" > file1.txt - echo "world" > file2.txt - cat file1.txt file2.txt > compiled.txt artifacts: paths: - compiled.txt test: stage: test script: cat compiled.txt | grep -q 'Hello world' package: stage: package script: cat compiled.txt | gzip > packaged.gz artifacts: paths: - packaged.gz
Vous trouverez un lien vers le fichier de configuration dans notre exemple de projet.
Félicitations ! Vous venez de compiler votre premier pipeline CI.
Pour activer l'intégration continue (CI) au sein de notre projet, nous devons effectuer un push du fichier .gitlab-ci.yml vers le dépôt. Une fois ce fichier situé à la racine du dépôt, chaque validation effectuée au sein du projet lancera automatiquement un pipeline CI. Le pipeline initial s'exécutera immédiatement après avoir effectué un push de ce fichier vers le serveur.
- Cliquez sur le bouton « Fusionner » situé sur le côté gauche de l'explorateur de fichiers.
- Écrivez un message de validation, par exemple « Ajout d'une configuration de CI ».
- Cliquez sur « Valider et effectuer un push ».
- Lorsque vous recevez un prompt indiquant « Validation sur une nouvelle branche ? », sélectionnez « Non, utiliser la branche principale actuelle ».
- Pour revenir à votre projet, cliquez sur le bouton Accéder au projet situé en bas à gauche.
Félicitations ! Votre projet a bien été configuré pour lancer automatiquement un pipeline CI à chaque validation de code.
Pendant que le pipeline est en cours d'exécution, vous pouvez surveiller son état dans l'onglet CI/CD. Cette fonctionnalité vous permet de suivre facilement la progression de vos jobs, y compris leur statut d'exécution (par exemple, s'ils ont démarré, s'ils ont été effectués avec succès ou s'ils ont échoué). Vous pouvez également consulter les données de sortie générées par vos scripts de jobs.
- Accédez au projet GitLab et consultez le menu de gauche.
- Cliquez sur CI/CD, puis sur Pipelines.
- Sur la page Pipelines, cherchez le bouton Pipeline dans la colonne Statut et cliquez dessus pour ouvrir le graphe du pipeline.
- Cet outil vous permet de consulter les jobs et leurs statuts respectifs.
- Cliquez sur un job pour ouvrir la console de jobs et en afficher les détails. Vous pouvez y visualiser toutes les étapes exécutées par le runner.
- Accédez au job d'empaquetage depuis la console pour afficher les étapes qui ont été traitées par le runner.
- Le job d'empaquetage génère un artefact que vous pouvez télécharger en cliquant sur le bouton Téléchargement situé sur le côté droit.
- Ces différentes étapes vous permettent de suivre efficacement le statut du pipeline, d'inspecter les détails du job et de récupérer tous les artefacts ou empaquetages pertinents générés lors de l'exécution du pipeline.
Félicitations ! Vous venez d'exécuter votre premier pipeline. Le pipeline a été exécuté avec succès ! À ce stade, vous avez consulté les résultats et téléchargé l'artefact du job.
Nous allons modifier la valeur attendue dans le job de test pour que celui-ci et l'ensemble du pipeline échouent.
- Modifiez le job de test en remplaçant la phrase « Hello World » par « hello world » (en lettres minuscules).
- Validez les modifications de code et accédez au pipeline, comme à l'étape 4.
- En vérifiant le pipeline, vous constaterez que le job de test a échoué. Par ailleurs, le job d'empaquetage suivant n'a pas démarré et l'exécution du pipeline a échoué, comme prévu.
À l'étape 5, nous avons vu que l'échec du job a fait échouer l'ensemble du pipeline. Vous pouvez introduire une logique dans votre pipeline qui détermine quand un échec de job entraînera l'échec de l'ensemble du pipeline. Pour ce faire, procédez comme suit :
- Évaluez les conditions dans lesquelles vous souhaitez qu'un échec de job entraîne un échec du pipeline. Vous pouvez, par exemple, empêcher l'exécution d'un pipeline si un job échoue sur la branche principale ou par défaut, tout en tolérant les échecs sur les autres branches.
- Définissez les règles qui régissent le comportement d'échec. Vous pouvez utiliser des variables telles que $CI_COMMIT_BRANCH pour vérifier la branche actuelle et prendre des décisions en fonction de celle-ci.
- Définissez vos conditions et spécifiez si le job doit être marqué comme allow_failure: false ou allow_failure: true.
Marche à suivre
- Ajoutez des règles/conditions à votre job de test.
- Utilisez le mot-clé allow_failure défini sur true ou false en fonction de la branche.
test: stage: test script: cat compiled.txt | grep -q 'Hello world' rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH allow_failure: false - if: $CI_COMMIT_BRANCH allow_failure: true
Pour simplifier la configuration du pipeline, vous pouvez tirer parti des modèles de pipeline intégrés fournis par GitLab. Ceux-ci sont prédéfinis pour les cas d'utilisation courants, tels que les scans de sécurité et les déploiements sur AWS.
Pour utiliser les modèles de pipeline intégrés, procédez comme suit :
- Parcourez les modèles de pipeline proposés par GitLab pour divers scénarios (compilation, test et déploiement), disponibles sur cette page.
- Sélectionnez le modèle qui correspond à vos besoins.
- Incorporez le modèle dans la configuration de votre pipeline en y faisant référence dans votre fichier .gitlab-ci.yml. Pour ce faire, importez le modèle à l'aide du mot-clé include et précisez le chemin ou l'URL du fichier de modèle.
Dans ce guide, nous allons ajouter le scan Code Quality à notre configuration à l'aide du modèle Code-Quality.
- Ajoutez le modèle Code-Quality à votre fichier .gitlab-ci.yml en ajoutant le code suivant sous le bloc d'étapes.
include: - template: Jobs/Code-Quality.gitlab-ci.yml #
Vous remarquerez qu'un job Code Quality a été ajouté à votre pipeline. Le scanner Code Quality passera en revue chaque modification de code validée dans ce dépôt et signalera les problèmes de qualité à corriger. Ces informations clés vous aident à améliorer votre code base et à en optimiser les performances.
Voilà ! En suivant ces étapes, vous devriez être en mesure de maîtriser les bases de GitLab CI et d'automatiser les processus de compilation et de test de votre projet.
Prochaines étapes
Lancez-vous dès maintenant
Découvrez comment la plateforme DevSecOps alimentée
par l'IA la plus complète peut aider votre équipe.