Skip to content

ci: run the develop-required checks in a merge queue #2032

Closed

Description

@Jaro-c

I want a merge queue on develop so several pull requests can be queued at once and each one is tested on top of develop plus whatever is ahead of it. Today protect-develop does not require branches to be up to date, so two pull requests that are green on their own can merge back to back and leave develop red, because nobody tested them together.

Before I turn the queue on, every check protect-develop requires has to report on the merge_group event, and none of them does today:

  • rust / Format & lint, rust / Test, rust / Coverage, rust / Doc warnings, rust / MSRV, rust / Extra platforms (ci.yml)
  • line-limit / line limit, dco / Signed-off-by present on every commit, Supported Podman majors (podman-lane.yml), workflow-lint / workflow-lint

Two of them read the pull request event and have nothing to read in the queue:

  • dco walks pull_request.base.sha..head.sha. In the queue it has to walk merge_group.base_sha..head_sha, which holds the squash commit GitHub built, i.e. the commit that lands on develop. That is better than today: the squash commit is never checked now.
  • podman-lane's decide job diffs the pull request to decide whether the VM boots.

Requirements:

  • No rule of protect-develop changes apart from adding the queue (squash, the only method it allows).
  • release.yml, the only workflow with publishing secrets, never runs in the queue.
  • A check in workflow-lint enforces both directions, so a new required check cannot forget the trigger and no other workflow can pick it up.

Signed-off-by: Jaro-c 75870284+Jaro-c@users.noreply.github.com

Activity

  1. added a commit that references this issue on Oct 12, 2026
    f0e4f91
  2. Jaro-c commented on Oct 12, 2026

    @Jaro-c
    MemberAuthor

    Done in #2033 (f0e4f91 on develop). I turn the queue on next and report the first merge groups here.

  3. Jaro-c commented on Oct 12, 2026

    @Jaro-c
    MemberAuthor

    The queue is on (squash, 120 min check timeout, all entries must pass). First run: I queued #2030, #2028 and #2029 at once, and they were tested as three groups in parallel, each on top of the ones ahead of it. Every group ran exactly CI, DCO, Line limit, Workflow lint and podman-lane, all green (15 of 15), and nothing else started. DCO in the #2029 group walked all three squash commits. The commits that landed on develop are the ones the groups tested (df5affb, 83567b7, 598816b), signed by GitHub and carrying Signed-off-by.

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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions