Skip to content

feat(ci): introduce merge queue#2024

Merged
elezar merged 3 commits into
mainfrom
feat/1946-merge-queue/elezar
Jul 15, 2026
Merged

feat(ci): introduce merge queue#2024
elezar merged 3 commits into
mainfrom
feat/1946-merge-queue/elezar

Conversation

@elezar

@elezar elezar commented Jun 26, 2026

Copy link
Copy Markdown
Member

🏗️ build-from-issue-agent

Summary

Add merge-queue support for the required OpenShell CI gates. The existing copy-pr-bot PR mirror flow remains intact, and merge-group runs publish the same stable OpenShell / ... status contexts for the queued integration SHA.

Related Issue

Closes #1946

Changes

  • .github/workflows/branch-checks.yml: add merge_group as a required branch-check trigger.
  • .github/workflows/branch-e2e.yml: add merge_group and make push, manual, and queue E2E selection explicit.
  • .github/workflows/helm-lint.yml: add merge_group validation for queued integration commits.
  • .github/workflows/required-ci-gates.yml: publish required CI statuses for merge-group SHAs without requiring a pull-request/<N> mirror branch.
  • .github/actions/pr-gate/action.yml: document that non-push events include merge_group.
  • CI.md and architecture/build.md: document the maintainer merge-queue workflow and required contexts.

Deviations from Plan

None — implemented as planned. The branch was rebased after #2022 merged so local validation includes that main Rust test fix.

Testing

  • YAML parse for touched workflow/action files
  • mise run markdown:lint
  • git diff --check origin/main...HEAD
  • mise run pre-commit passes locally (attempted after rebasing on fix(server): update driver spec test argument #2022; Rust check/lint, Python, Helm, Markdown, license, docs, and packaging checks passed, but test:rust still fails on this machine because xcrun --show-sdk-path cannot find the macOS SDK and the CLI integration test temporary fake-forward-process cannot link -lSystem)

Tests added:

  • Unit: N/A — workflow YAML and docs only.
  • Integration: N/A — no application integration paths changed.
  • E2E: N/A — no e2e/ files changed.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

Documentation updated:

  • CI.md: merge queue behavior, required contexts, maintainer workflow, and workflow file roles.
  • architecture/build.md: CI architecture now includes merge-group validation.

@elezar elezar requested a review from mrunalp as a code owner June 26, 2026 14:23
@elezar elezar added the area:build Related to CI/CD and builds label Jun 26, 2026
@elezar elezar requested review from a team, derekwaynecarr and maxamillion as code owners June 26, 2026 14:23
@elezar elezar added the area:build Related to CI/CD and builds label Jun 26, 2026
Comment thread .github/workflows/branch-e2e.yml Outdated
Comment thread .github/workflows/branch-e2e.yml
@pimlock

pimlock commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

As I was looking into this, one thing that I realized that is likely contributing to this issue is the fact that our branch checks run on the code as-is on the branch, whereas the default for pull_request triggered workflows is to test against refs/pull/<ID>/merge, which is the result after merging the PR to the current main.

With the copy-pr-bot and push trigger, checks run exactly on the branch's code, which is likely out of date.

pimlock
pimlock previously approved these changes Jun 29, 2026
@elezar elezar force-pushed the feat/1946-merge-queue/elezar branch from 93901ba to ea7de15 Compare June 30, 2026 08:00
@elezar

elezar commented Jun 30, 2026

Copy link
Copy Markdown
Member Author

As I was looking into this, one thing that I realized that is likely contributing to this issue is the fact that our branch checks run on the code as-is on the branch, whereas the default for pull_request triggered workflows is to test against refs/pull/<ID>/merge, which is the result after merging the PR to the current main.

With the copy-pr-bot and push trigger, checks run exactly on the branch's code, which is likely out of date.

This is interesting. I was not aware of this. Maybe we could reach out to the copy-pr-bot team to better align the behaviour.

One thing to note however, is that even if we were to run against the "merge" result on the PR (which we could do on public infrastructure for steps that don't need repo write access already), this is not updated as main is updated which means that we would still see the same failure mode w.r.t post-merge issues in Rust linting.

Closes #1946

Signed-off-by: Evan Lezar <elezar@nvidia.com>
@elezar elezar force-pushed the feat/1946-merge-queue/elezar branch from ea7de15 to 7210ca3 Compare July 13, 2026 14:59
@elezar elezar enabled auto-merge July 15, 2026 20:31
elezar added 2 commits July 15, 2026 22:56
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>

@matthewgrossman matthewgrossman left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@elezar elezar disabled auto-merge July 15, 2026 21:26
@elezar elezar added this pull request to the merge queue Jul 15, 2026
@elezar elezar merged commit b4be33e into main Jul 15, 2026
31 checks passed
@elezar elezar deleted the feat/1946-merge-queue/elezar branch July 15, 2026 22:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:build Related to CI/CD and builds

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(ci): introduce merge queue for main

5 participants