Multi-project pipelines

Introduced in GitLab Premium 9.3.

When you set up GitLab CI/CD across multiple projects, you can visualize the entire pipeline, including all cross-project inter-dependencies.

Overview

GitLab CI/CD is a powerful continuous integration tool that works not only per project, but also across projects. When you configure GitLab CI for your project, you can visualize the stages of your jobs on a pipeline graph.

Multi-project pipeline graph

In the Merge Request Widget, multi-project pipeline mini-graphs are displayed, and when hovering or tapping (on touchscreen devices) they will expand and be shown adjacent to each other.

Multi-project mini graph

Multi-project pipelines are useful for larger products that require cross-project inter-dependencies, such as those adopting a microservices architecture.

Use cases

Let's assume you deploy your web app from different projects in GitLab:

  • One for the free version, which has its own pipeline that builds and tests your app
  • One for the paid version add-ons, which also pass through builds and tests
  • One for the documentation, which also builds, tests, and deploys with an SSG

With Multi-Project Pipelines, you can visualize the entire pipeline, including all stages of builds and tests for the three projects.

How it works

When you use the CI_JOB_TOKEN to trigger pipelines, GitLab recognizes the source of the job token, and thus internally ties these pipelines together, allowing you to visualize their relationships on pipeline graphs.

These relationships are displayed in the pipeline graph by showing inbound and outbound connections for upstream and downstream pipeline dependencies.