CIAO: prepare for merge trains
What
Prepare the CI configuration for merge trains by modifying the rules so that all special behavior reserved to marge-bot is also extended to merge train pipelines.
Why
We want to start experimenting with merge trains.
How
I've taken the approach of implementing a configuration that is agnostic to either marge-bot or merge trains. This means that we'll be able to switch back and forth without reverting this MR. The merge trains feature has advanced a lot since the previous effort (see !10992 (closed)). MRs no longer need to rebased before adding to the train, so a lot of complication of the previous effort can be ignored.
In fact, this MR changes little -- just at every place it says if (marge-bot) I've added if (marge-bot || merge train).
However, to make this easier I added some refactorings renaming "marge-bot" pipeline to "final" pipeline.
Manually testing the MR
On the arvid-tezos/arvid@merge-trains-main branch, I applied the configuration from this MR. Then I applied a simplified configuration to test marge-bot, merge trains (and marge-bot2). I wanted to test that we can indeed merge MRs with my new configuration using:
-
merge trains: nomadic-labs/arvid-tezos!538 (merged) - The test MR works fine with merge trains, the dummy final pipeline job runs only on the final pipeline.
-
marge-bot1: nomadic-labs/arvid-tezos!540 (merged) - The test MR works fine with original marge-bot1, the dummy final pipeline job runs only on the final pipeline.
-
(merge trains using marge-bot2) - I've tried it, but I discovered that marge-bot2 requires that "Require successful pipeline" to be turned off to be useful.
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR