From 3099724d6799d0b6514112ab1c448b18b36cf515 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Mon, 3 Jun 2019 18:06:33 +0700 Subject: [PATCH] Docs for Merge Trains It explains what is Merge Trains, how to enalbe it and its limitations. --- .../img/merge_train_cancel.png | Bin 0 -> 19577 bytes .../img/merge_train_config.png | Bin 0 -> 24267 bytes .../img/merge_train_start.png | Bin 0 -> 8365 bytes ...rge_train_start_when_pipeline_succeeds.png | Bin 0 -> 10323 bytes doc/ci/merge_request_pipelines/index.md | 73 +++++++++++++++++- 5 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 doc/ci/merge_request_pipelines/img/merge_train_cancel.png create mode 100644 doc/ci/merge_request_pipelines/img/merge_train_config.png create mode 100644 doc/ci/merge_request_pipelines/img/merge_train_start.png create mode 100644 doc/ci/merge_request_pipelines/img/merge_train_start_when_pipeline_succeeds.png diff --git a/doc/ci/merge_request_pipelines/img/merge_train_cancel.png b/doc/ci/merge_request_pipelines/img/merge_train_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..1561fdcc7a53cfd2f288e237fbf785339f7f2eda GIT binary patch literal 19577 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 Wu3i6G?+^SPw#U>6Zb-iD67e4qa9&sd literal 0 HcmV?d00001 diff --git a/doc/ci/merge_request_pipelines/img/merge_train_config.png b/doc/ci/merge_request_pipelines/img/merge_train_config.png new file mode 100644 index 0000000000000000000000000000000000000000..fb0af43556e8c58cb4a6c5b14da04831f0145dd9 GIT binary patch literal 24267 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⁣(gl01GQe`x{X!h|x9 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 S35ag=NOIE3QWX-0{{Ih}lrFRY literal 0 HcmV?d00001 diff --git a/doc/ci/merge_request_pipelines/img/merge_train_start.png b/doc/ci/merge_request_pipelines/img/merge_train_start.png new file mode 100644 index 0000000000000000000000000000000000000000..f20108157d29ed79ebdf32b2798113ea019f1060 GIT binary patch literal 8365 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 X$v09^BpC5?tSt|L?uuZ{4ap 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 literal 0 HcmV?d00001 diff --git a/doc/ci/merge_request_pipelines/index.md b/doc/ci/merge_request_pipelines/index.md index fe2fc790505..d8c1cefc8df 100644 --- a/doc/ci/merge_request_pipelines/index.md +++ b/doc/ci/merge_request_pipelines/index.md @@ -74,7 +74,7 @@ when a merge request was created or updated. For example: ## Pipelines for Merged Results **[PREMIUM]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. -> This feature is disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186), but [can be enabled manually](#enabling-pipelines-for-merged-results). +> This feature is disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/11222), but [can be enabled manually](#enabling-pipelines-for-merged-results). It's possible for your source and target branches to diverge, which can result in the scenario that source branch's pipeline was green, the target's pipeline was green, @@ -118,10 +118,79 @@ otherwise pipelines for merged results won't run and your merge requests will be - This feature requires [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 or newer. - This feature requires [Gitaly](https://gitlab.com/gitlab-org/gitaly) 1.21.0 or newer. -- After the merge request pipeline succeeds, if the target branch has moved forward, the result of the pipeline is stale and must be retried. In busy repos, this can become a problem as it is highly probable that the target branch will have moved ahead. Improvements are [planned](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186) for future versions of GitLab. - Forking/cross-repo workflows are not currently supported. To follow progress, see [#9713](https://gitlab.com/gitlab-org/gitlab-ee/issues/9713). - This feature is not available for [fast forward merges](../../user/project/merge_requests/fast_forward_merge.md) yet. To follow progress, see [#58226](https://gitlab.com/gitlab-org/gitlab-ce/issues/58226). +## Merge Trains **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.0. +> This feature is disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/11222), but [can be enabled manually](#enabling-merge-trains). + +[Pipelines for merged results](#pipelines-for-merged-results-premium) introduces +running a build on the result of the merged code prior to merging, as a way to keep master green. +There's a scenario, however, for teams with a high number of changes in the target branch (typically master) where in many or even all cases, +by the time the merged code is validated another commit has made it to master, invalidating the merged result. +You'd need some kind of queuing, cancellation or retry mechanism for these scenarios +in order to ensure an orderly flow of changes into the target branch. + +Each MR that joins a merge train joins as the last item in the train, +just as it works in the current state. However, instead of queuing and waiting, +each item takes the completed state of the previous (pending) merge ref, adds its own changes, +and starts the pipeline immediately in parallel under the assumption that everything is going to pass. +In this way, if all the pipelines in the train merge successfully, no pipeline time is wasted either queuing or retrying. +If the button is subsequently pressed in a different MR, instead of creating a new pipeline for the target branch, +it creates a new pipeline targeting the merge result of the previous MR plus the target branch. +Pipelines invalidated through failures are immediately canceled and requeued. + +CAUTION: **Warning:** +At this moment, each merge train can generate a merge ref and run a pipeline **one at a time** due to a technical challenge. +We have [an issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/11222) to tackle this problem to make the pipelines for merged results run in parallel. + +### Enabling Merge Trains + +To enable merge trains at the project level: + +1. Visit your project's **Settings > General** and expand **Merge requests**. +1. Check **Allow merge trains**. +1. Click **Save changes** button. + +![Merge request pipeline config](img/merge_train_config.png) + +CAUTION: **Warning:** +This feature requires [Pipelines for merged results](#pipelines-for-merged-results-premium) to be **configured properly**. + +### How to add a merge request to a merge train + +To add a merge request to a merge train: + +1. Click "Start/Add merge train" button in a merge request + +![Start merge train](img/merge_train_start.png) + +### How to remove a merge request from a merge train + +1. Click "Remove from merge train" button in the merge request widget. + +![Cancel merge train](img/merge_train_cancel.png) + +### Tips: Start/Add to merge train when pipeline succeeds + +You can add a merge request to a merge train only when the latest pipeline in the +merge request finished. While the pipeline is running or pending, you cannot add +the merge request to a train because the current change of the merge request may +be broken thus it could affect the following merge requests. + +In this case, you can schedule to add the merge request to a merge train **when the latest +pipeline succeeds**. You can see the following button instead of the regular "Start/Add merge train" +button while the latest pipeline is running. + +![Add to merge train when pipeline succeeds](img/merge_train_start_when_pipeline_succeeds.png) + +### Merge Train's limitations + +- At this moment, each merge train can generate a merge ref and run a pipeline **one at a time** due to a technical challenge. + We have [an issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/11222) to tackle this problem to make the pipelines for merged results run in parallel. + ## Excluding certain jobs The behavior of the `only: merge_requests` parameter is such that _only_ jobs with -- GitLab