CI that doesn't run on MRs

Nicolas Fella nicolas.fella at gmx.de
Wed Jul 30 20:23:42 BST 2025


On 7/30/25 9:15 PM, Ben Cooksley wrote:
> On Thu, Jul 31, 2025 at 4:52 AM Harald Sitter <sitter at kde.org> wrote:
>
>     On Wed, Jul 30, 2025 at 1:25 PM Ben Cooksley <bcooksley at kde.org>
>     wrote:
>     >
>     > On Wed, Jul 30, 2025 at 7:18 PM Vlad Zahorodnii
>     <vlad.zahorodnii at kde.org> wrote:
>     >>
>     >> On 7/30/25 9:58 AM, Harald Sitter wrote:
>     >> > Hey
>     >> >
>     >> > So, I need to vent a bit. I am super unhappy with the manual CI
>     >> > trigger stuff. Half the time I forget.  When I don't forget I
>     want to
>     >> > press all the buttons, but I can't because of the prestage, I
>     usually
>     >> > sit there for 5 seconds, nothing happens because the prestage
>     takes
>     >> > more than 5 seconds, I get distracted and do something else
>     ... and
>     >> > forget I wanted to land something at all.
>     >
>     >
>     > I was working on some merge requests for sysadmin/repo-metadata
>     just a few hours ago, which only contains basic linting jobs.
>     > They were picked up and fully processed in the space of ~30
>     seconds - total of 6 different linter jobs (so 6 containers
>     spawned in total).
>     >
>     > All seems quite reasonable for processing turnaround.
>     >
>     >>
>     >> >
>     >> > More and more I find myself not caring and merging without
>     pre-merge
>     >> > CI. Between the manual triggers, failing appium tests, and
>     conflicting
>     >> > merges I just can't be bothered with the CI. Surely that
>     can't be the
>     >> > goal here.
>     >> >
>     >> > Can we get back a CI that helps?
>     >>
>     >> Hi,
>     >>
>     >> Just in case, the automatic CI got disabled because kwin had
>     too many
>     >> pipelines and it takes about 10-15 minutes for a single pipeline to
>     >> complete.
>     >>
>     >> There was a long and somewhat heated discussion about it. We
>     asked to
>     >> disable automatic CI for kwin specifically, so when you push to
>     a work
>     >> branch that is not ready to be merged yet, no CI resources are
>     wasted.
>     >> However, instead, automatic CI got disabled for all Plasma
>     projects.
>     >> Sorry! :(
>     >
>     >
>     > Plasma in general was set to manual for all merge requests
>     because the commentary in that thread made it appear that the
>     workflows were more Plasma than just KWin. There are also issues
>     with Appium tests in Plasma Desktop / Workspace which mean
>     pipelines take an extremely long amount of time to complete/fail
>     (something on the order of 40-50 minutes if memory serves)
>     >
>     > The overuse of CI resources by Plasma could in part be mitigated
>     by marking merge requests that are not ready to merge as draft,
>     which seems to be a Gitlab feature that is not in use at all at
>     least if I take a cursory look at current pending KWin MRs. We
>     already set CI into manual mode for draft merge requests as a
>     global rule, as well as for work branches.
>
>     What confuses me right now is whether this is just plasma being an
>     active project or gitlab having poor behavior. It occurs to me that
>     the former would be solved by giving plasma dedicated plasma resources
>     to use, while the latter is a matter of hiring someone to engineer the
>     problem(s) with gitlab away.
>     Both solvable problems though.
>
>
> If memory serves correctly the general view from that thread could be 
> summarised as:
> 1) Work branches were basically used to immediately open merge 
> requests in the majority of cases, so running CI on pushes to work 
> branches was simply a waste as CI would be (re-)run on the merge request.

That part seems pretty uncontroversial.


> 2) Merge requests were used as part of an iterative development 
> workflow, and as such CI runs on merge requests were in many cases 
> also useless because the MR was not yet ready to be merged and was 
> still under active development.
>
> Because merge requests that aren't actually ready for final review and 
> then merging cannot currently be distinguished from merge requests 
> that are not at all ready and are just collecting comments, the only 
> way to solve for (2) is to switch CI to manual on merge requests.
>
> Gitlab already has a mechanism for differentiating between those two 
> types of merge requests (marking as draft) however it is not used by 
> Plasma (or at least wasn't on the two pages of KWin reviews I quickly 
> skimmed)
>
> So this isn't really Gitlab's fault, it is how Plasma has opted to use 
> Gitlab.

That's not something that's unique to Plasma in any way. Sometimes you 
make a merge request and it quickly gets approved and merged, sometime 
it takes a few iterations until consensus is reached. That's how it 
works for any reasonably active project where it's not just one guy 
pushing straight to master.


> If you were to adopt the draft flag on merge requests that are in that 
> iterative phase and not intended to be merged then we could look at 
> adjusting how it works.
>
> Note that this won't do anything to solve broken tests, or tests that 
> take too long - that is something only Plasma developers can correct.
>
> Cheers,
> Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20250730/d0c0bafe/attachment-0001.htm>


More information about the Plasma-devel mailing list