Skip to content

Types of pipelines

DETAILS: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

Four types of pipelines exist:

  • Branch pipelines
  • Merge request pipelines
  • Merge result pipelines
  • Merge trains

These types of pipelines all appear on the Pipelines tab of a merge request.

Branch pipeline

Your pipeline can run every time you commit changes to a branch.

This type of pipeline is called a branch pipeline.

This pipeline runs by default. No configuration is required.

Branch pipelines:

Merge request pipeline

Instead of a branch pipeline, you can configure your pipeline to run every time you make changes to the source branch in a merge request.

This type of pipeline is called a merge request pipeline.

Merge request pipelines do not run by default. You must configure the jobs in the .gitlab-ci.yml file to run as merge request pipelines.

For more information, see merge request pipelines.

Merged results pipeline

  • The merged results label was introduced in GitLab 16.5.

A merged results pipeline runs on the result of the source and target branches merged together. It's a type of merge request pipeline.

These pipelines do not run by default. You must configure the jobs in the .gitlab-ci.yml file to run as a merge request pipeline, and enable merge request pipelines.

These pipelines display a merged results label in pipeline lists.

For more information, see merged results pipeline.

Merge trains

In projects with frequent merges to the default branch, changes in different merge requests might conflict with each other. Use merge trains to put merge requests in a queue. Each merge request is compared to the other, earlier merge requests, to ensure they all work together.

Merge trains differ from merged results pipelines, because merged results pipelines ensure the changes work with the content in the default branch, but not content that others are merging at the same time.

These pipelines do not run by default. You must configure the jobs in the .gitlab-ci.yml file to run as a merge request pipeline, enable merge request pipelines, and enable merge trains.

These pipelines display a merge train label in pipeline lists.

For more information, see merge trains.