Objectif :
- À partir d'un projet, déclencher le pipeline d'un autre projet.
- Transmettre une variable d'un gitlab-ci à un autre.
Doc : https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html
- Un pipeline peut déclencher des pipelines en aval dans un autre projet.
- Les pipelines multiprojets affectent le statut global du projet en aval.
- Utilisation du mot-clé
trigger
dans le fichier .gitlab-ci.yml.
stages:
- s1
- s2
j1:
stage: s1
image: docker
script:
- echo "Mon premier job !!!"
tags:
- docker
j2:
variables:
VAR1: "variable1"
VAR2: "variable2"
stage: s2
trigger:
project: becode/pipe2
branch: main
strategy: depend
Ici, on utilise strategy:depend
pour forcer la tâche à attendre la fin du pipeline en aval avant d'être marquée comme réussie .
Ce comportement est différent du comportement par défaut, selon lequel le trigger est marqué comme réussi dès que le pipeline en aval est créé.
image: debian:latest
job1:
rules:
- if: $CI_PIPELINE_SOURCE == "pipeline"
script:
- echo $VAR1
- echo $VAR2
tags:
- docker
Il est important de noter que bien que les pipelines multi-projets soient puissants, ils peuvent aussi ajouter de la complexité au processus de CI/CD. Il faut vraiment les utilser en fonction des besoins spécifiques de votre organisation et de votre architecture de projet.