Documentation GitLab : Pipeline Architectures
Il existe 3 types d'architectures :
- Basic pipelines
- Direct Acyclic Graph (DAG) pipelines
- Parent/enfants pipelines : place à votre imagination...
Il s'agit de l'architecture la plus commune.
Etapes Stage1 Stage2 Stage3
Jobs
Job1 Job3 Job5
Job2 Job4 Job6
Exemple :
stages:
- stage1
- stage2
job1:
stage: stage1
script:
- echo "stage1 - job1"
job2:
stage: stage1
script:
- echo "stage1 - job2"
- Ce modèle utilise un graphe acyclique dirigé (DAG) pour représenter les dépendances entre les jobs.
- Les jobs s'exécutent dans l'ordre défini, mais les stages peuvent être exécutées en parallèle.
needs: [job1]
indique que le job2 dépend du job1.
Exemple :
stages:
- stage1
- stage2
job1:
stage: stage1
script:
- echo "stage1 - job1"
- exit 0
tags:
- docker
job4:
stage: stage1
tags:
- docker
script:
- echo "stage1 - job4"
job2:
stage: stage2
tags:
- docker
needs: [job1]
script:
- echo "stage2 - job2"
job5:
stage: stage2
tags:
- docker
needs: [job4]
script:
- echo "stage2 - job5"
- Découper en différents fichiers
.gitlab-ci
- Gestion de déclenchement suivant des répertoires spécifiques
- Gestion de blocs
- Solution efficace pour le monorepo
Pipeline :
caseA : stage1 stage2 stage3
caseB : stage21 stage22 stage23
Exemple :
trigger-ui:
trigger:
include: ui/.gitlab-ci.yml
strategy: depend
trigger-backend:
trigger:
include: backend/.gitlab-ci.yml
strategy: depend
Strategy: depend permet d'affecter le pipeline parent. Par exemple si un des pipelines enfants ne s'execute pas correctement, le pipeline parent sera stoppé.
Exercice :
- Créer un pipeline avec 2 pipelines enfants, ui et backend.
- Faire un echo.