No more blocked pipelines
There are three main changes in here, but all to minimise Marge's downtime.
The first is to explicitly use --no-ff
when we do a rebase. This may be a Mesa/freedesktop-specific wart, but there's a certain sense to it. We set our pipelines to run automatically when triggered by Marge, and manual when triggered by users. Generally, this works well: Marge rebases and pushes, which creates a new pipeline, and she waits for it to complete. However, if a user pushes a branch which fast-forwards from the target branch, and they've already got the Part-of
trailer in it, the rebase will be a no-op. This change unconditionally adds --no-ff
, on the grounds that if you've asked to rebase, then you should rebase.
The second just treats the 'new' canceling
status the same as canceled
, so we bail out as soon as someone presses the button, instead of waiting for it all to resolve on the server side.
The third is an early timeout for when we don't end up with a pipeline. If the CI workflow is misconfigured, we may never create a pipeline, or it may end up being manual. This inserts all the known not-yet-started statuses into a wait-for-pipeline wrapper and gives it five minutes to begin running before it gives up and moves on. This avoids spinning for an hour waiting for a pipeline which will never complete.