Commit 4c36ac03 authored by Marcel Amirault's avatar Marcel Amirault

Merge branch 'selhorn-permstrain' into 'master'

Docs added permissions for merge trains

Closes #29850

See merge request gitlab-org/gitlab!30526
parents b1f96d2f d1b7dfb8
...@@ -13,17 +13,27 @@ changes are pushed to a branch. ...@@ -13,17 +13,27 @@ changes are pushed to a branch.
If you want the pipeline to run jobs **only** when merge requests are created or updated, If you want the pipeline to run jobs **only** when merge requests are created or updated,
you can use *pipelines for merge requests*. you can use *pipelines for merge requests*.
In the UI, these pipelines are labeled as `detached`. In the UI, these pipelines are labeled as `detached`. Otherwise, these pipelines appear the same
as other pipelines.
Any user who has developer [permissions](../../user/permissions.md)
can run a pipeline for merge requests.
![Merge request page](img/merge_request.png) ![Merge request page](img/merge_request.png)
A few notes: NOTE: **Note**:
If you use this feature with [merge when pipeline succeeds](../../user/project/merge_requests/merge_when_pipeline_succeeds.md),
pipelines for merge requests take precedence over the other regular pipelines.
## Prerequisites
To enable pipelines for merge requests:
- Pipelines for merge requests are incompatible with - You must have maintainer [permissions](../../user/permissions.md).
[CI/CD for external repositories](../ci_cd_for_external_repos/index.md). - Your repository must be a GitLab repository, not an
- [Since GitLab 11.10](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/25504), pipelines for merge requests require GitLab Runner 11.9. [external repository](../ci_cd_for_external_repos/index.md).
- If you use this feature with [merge when pipeline succeeds](../../user/project/merge_requests/merge_when_pipeline_succeeds.md), - [In GitLab 11.10 and later](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/25504),
pipelines for merge requests take precedence over the other regular pipelines. you must be using GitLab Runner 11.9.
## Configuring pipelines for merge requests ## Configuring pipelines for merge requests
......
...@@ -34,14 +34,18 @@ In these cases, the pipeline runs as a [pipeline for merge requests](../index.md ...@@ -34,14 +34,18 @@ In these cases, the pipeline runs as a [pipeline for merge requests](../index.md
and is labeled as `detached`. If these cases no longer exist, new pipelines will and is labeled as `detached`. If these cases no longer exist, new pipelines will
again run against the merged results. again run against the merged results.
## Requirements and limitations Any user who has developer [permissions](../../../user/permissions.md) can run a
pipeline for merged results.
Pipelines for merged results have the following requirements and limitations: ## Prerequisites
- Pipelines for merged results require [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 or newer. To enable pipelines for merge results:
- Forking/cross-repo workflows are not currently supported. To follow progress,
- You must have maintainer [permissions](../../../user/permissions.md).
- You must be using [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 or later.
- You must not be forking or using cross-repo workflows. To follow progress,
see [#11934](https://gitlab.com/gitlab-org/gitlab/issues/11934). see [#11934](https://gitlab.com/gitlab-org/gitlab/issues/11934).
- This feature is not available for - You must not be using
[fast forward merges](../../../user/project/merge_requests/fast_forward_merge.md) yet. [fast forward merges](../../../user/project/merge_requests/fast_forward_merge.md) yet.
To follow progress, see [#58226](https://gitlab.com/gitlab-org/gitlab/-/issues/26996). To follow progress, see [#58226](https://gitlab.com/gitlab-org/gitlab/-/issues/26996).
......
...@@ -30,6 +30,14 @@ If the pipeline for the merge request at the front of the train completes succes ...@@ -30,6 +30,14 @@ If the pipeline for the merge request at the front of the train completes succes
the changes are merged into the target branch, and the other pipelines continue to the changes are merged into the target branch, and the other pipelines continue to
run. run.
To add a merge request to a merge train, you need [permissions](../../../../user/permissions.md) to push to the target branch.
NOTE: **Note:**
Each merge train can run a maximum of **twenty** pipelines in parallel.
If more than twenty merge requests are added to the merge train, the merge requests
will be queued until a slot in the merge train is free. There is no limit to the
number of merge requests that can be queued.
## Merge train example ## Merge train example
Three merge requests (`A`, `B` and `C`) are added to a merge train in order, which Three merge requests (`A`, `B` and `C`) are added to a merge train in order, which
...@@ -55,16 +63,13 @@ Watch this video for a demonstration on [how parallel execution ...@@ -55,16 +63,13 @@ Watch this video for a demonstration on [how parallel execution
of Merge Trains can prevent commits from breaking the default of Merge Trains can prevent commits from breaking the default
branch](https://www.youtube.com/watch?v=D4qCqXgZkHQ). branch](https://www.youtube.com/watch?v=D4qCqXgZkHQ).
## Requirements and limitations ## Prerequisites
Merge trains have the following requirements and limitations: To enable merge trains:
- Merge trains require [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 or newer. - You must have maintainer [permissions](../../../../user/permissions.md).
- GitLab 12.0 and later requires [Redis](https://redis.io/) 3.2 or higher. - You must be using [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 or later.
- Each merge train can run a maximum of **twenty** pipelines in parallel. - In GitLab 12.0 and later, you need [Redis](https://redis.io/) 3.2 or later.
If more than twenty merge requests are added to the merge train, the merge requests
will be queued until a slot in the merge train is free. There is no limit to the
number of merge requests that can be queued.
## Enable merge trains ## Enable merge trains
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment