Skip to content

CI: the merge queue is wired up in ci.yml but has never run — it is not enabled on the branch #106

Description

@dborgards

Found while checking a review finding on #104, not while looking for it.

What is the case

.github/workflows/ci.yml carries a merge_group trigger, and the comment above it records exactly why:

A merge queue builds main plus the queued pull requests together and merges only if that combination is green. […] The reason it exists: #81 and #83 were each green and merged four minutes apart, and their combination broke the net48 leg on main (#85). Neither pull request was ever built against the other.

The trigger has never fired. Filtering CI runs by event: merge_group returns total_count: 0. Every merge to main, including #100 and #101 today, went in as a plain merge commit.

So the workflow half is done and the repository-settings half is not: GitHub's merge queue has to be turned on in the branch protection / ruleset for main before the trigger can ever be reached.

Why it matters

The failure it was built for is not hypothetical — #85 already happened, from two green pull requests merged four minutes apart. The workflow change that was supposed to prevent a repeat is inert, and nothing surfaces that: an unused trigger looks identical to a working one in the file.

It also affects a rule being added in #104. One pull request open at a time has two justifications — supervision cost, and the base merges that a merge to main forces on everything else in flight. The second one is only true while the queue is off. With the queue on, a queued branch is tested against current main on a temporary ref, with no base merge and no new head. Worth knowing so the rule is not later dismissed on the grounds that "we have a merge queue" when in practice we do not.

What to check when picking this up

  • Whether the queue was deliberately left off (it interacts with required checks, and every required check must also run on merge_group, which this workflow does handle).
  • Whether the version job's GitVersion behaviour on a gh-readonly-queue/... ref is really tolerated — the comment claims it is, but that claim has never been executed, so it is unverified rather than known.
  • That concurrency: ci-${{ github.workflow }}-${{ github.ref }} gives each queue entry its own group, as the comment states.

Low priority, no user-visible effect. But it is a guard that is currently only decorative, which is worse than not having it, because it reads as protection that is not there.

Refs #81, #83, #85, #104.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: choreBuild, CI, tooling, housekeeping

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions