Gitlab - 3.3.3 Qu’est-ce que le pipeline
Le code de l'application étant maintenant construit, nous allons essayer de l'exécuter sur GitLab et créer notre tout premier pipeline. Ce pipeline sera très basique : il se contentera d'exécuter le code présent dans notre dépôt. L'objectif ici n'est pas de couvrir toutes les phases de build et de test, mais simplement de comprendre comment les pipelines sont définis dans GitLab. Ajouter trop d'étapes à ce stade ne ferait que compliquer inutilement les choses.
Qu'est-ce qu'un pipeline ?
Les pipelines sont les composants de plus haut niveau de l'intégration, de la livraison et du déploiement continus. Fondamentalement, il s'agit d'un ensemble d'éléments connectés en série, où chaque ensemble effectue certaines tâches. Par exemple, un pipeline peut démarrer par le processus A qui exécute les tâches 1 et 2, puis passer au processus B qui a sa propre liste de tâches, et ainsi de suite jusqu'au processus final D.
Dans le contexte de GitLab CI/CD, un pipeline est composé de deux éléments principaux : les jobs (travaux) et les stages (étapes). Un job est l'élément le plus fondamental d'un pipeline : il définit ce qu'il faut faire, par exemple tester ou compiler le code. Un stage est une collection de jobs : il définit essentiellement l'ordre d'exécution. Si tous les jobs d'un stage réussissent, le pipeline passe au stage suivant ; si un job échoue, le stage suivant n'est généralement pas exécuté et le pipeline se termine.
- Job : élément de base, définit une action (test, build)
- Stage : collection de jobs, définit l'ordre d'exécution
- Échec d'un job = arrêt du pipeline
- Exécution automatique par défaut, intervention manuelle possible
Les pipelines sont généralement exécutés automatiquement et ne nécessitent aucune intervention, mais GitLab permet aussi d'interagir manuellement si besoin (nous le verrons plus tard). Dans la plupart des cas, un pipeline CI/CD complet est composé de quatre stages dans cet ordre : test, build, staging (mise en scène) et production. Ce n'est cependant pas une norme : selon les exigences du projet, vous pouvez créer autant de stages que nécessaire et les organiser comme vous le souhaitez.
Il existe également plusieurs types de pipelines selon la complexité du projet : le pipeline de base adapté aux projets simples, les pipelines DAG (Directed Acyclic Graph) pour les projets volumineux et complexes, les pipelines parent-enfant ou multi-projets, etc. Les noms et la complexité varient, mais l'idée de base reste la même. Passons maintenant à la création d'un fichier très simple via la fonctionnalité CI/CD de GitLab.
En résumé
Un pipeline dans GitLab est un ensemble d'éléments connectés en série, fondamental pour l'intégration, la livraison et le déploiement continu (CI/CD). Il est composé de jobs (travaux) qui définissent les tâches à effectuer, et de stages (étapes) qui organisent l'ordre d'exécution. Les pipelines s'exécutent généralement de façon automatique et ne progressent à l'étape suivante que si tous les jobs de l'étape actuelle réussissent.
Points clés
- Un pipeline est composé de deux éléments clés : les jobs (travaux) qui définissent les actions à effectuer, et les stages (étapes) qui organisent l'ordre d'exécution
- Un pipeline progresse à l'étape suivante seulement si tous les jobs de l'étape actuelle réussissent ; si un job échoue, les étapes suivantes ne s'exécutent généralement pas
- Les pipelines s'exécutent normalement de façon automatique, mais GitLab permet également une interaction manuelle avec les pipelines si nécessaire
- Les étapes typiques d'un pipeline CI/CD sont : test, build, staging et production (ordre courant, modifiable selon les besoins du projet)
- Il existe plusieurs types de pipelines selon les besoins du projet : basic pipeline pour projets simples, DAG (directed acyclic graph) pour projets volumineux et complexes, parent-child, et multi-project
Questions fréquentes
Quelle est la différence entre un job et une stage dans un pipeline GitLab ?
Un job est l'élément fondamental du pipeline qui définit une tâche spécifique à exécuter, comme tester ou compiler le code. Une stage (étape) est une collection de jobs qui définit l'ordre dans lequel les jobs doivent s'exécuter les uns après les autres.
Comment un pipeline progresse-t-il à travers les étapes ?
Un pipeline ne progresse à l'étape suivante que si tous les jobs de l'étape actuelle réussissent. Si un job échoue, l'étape suivante ne s'exécute généralement pas et le pipeline s'arrête à ce stade.
Quels sont les types de pipelines disponibles dans GitLab ?
GitLab propose plusieurs types de pipelines selon les besoins du projet : le basic pipeline pour les projets simples, le DAG (directed acyclic graph) pour les projets volumineux et complexes, le parent-child pour les structures hiérarchiques, et le multi-project pour coordonner plusieurs projets.