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.