Merge Trains in GitHub?

Hi! I worked for a few years with GitLab. Now we are switching to GitHub :slight_smile: When setting up our CI/CD pipeline, I was missing a merge train feature, like GitLab it has. Is there anything similar on GitHub?

What is a merge train?

When pipelines for merged results are enabled, the pipeline jobs run as if the changes from your source branch have already been merged into the target branch.

However, the target branch may be changing rapidly. When you’re ready to merge, if you haven’t run the pipeline in a while, the target branch may have already changed. Merging now could introduce breaking changes.

Merge trains can prevent this from happening. A merge train is a queued list of merge requests, each waiting to be merged into the target branch.

Many merge requests can be added to the train. Each merge request runs its own merged results pipeline, which includes the changes from all of the other merge requests in front of it on the train. All the pipelines run in parallel, to save time.

If the pipeline for a merge request fails, the breaking changes are not merged, and the target branch is unaffected. The merge request is removed from the train, and all pipelines behind it restart.

If the pipeline for the merge request at the front of the train completes successfully, the changes are merged into the target branch, and the other pipelines continue to run.

Source: Merge Trains | GitLab