Skip to content

ci: run CI and Quality workflows on merge_group - #688

Open
bburda wants to merge 2 commits into
mainfrom
ci/run-checks-on-merge-group
Open

bburda wants to merge 2 commits into
mainfrom
ci/run-checks-on-merge-group

Conversation

@bburda

@bburda bburda commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

main is getting a merge queue. A queue builds a temporary gh-readonly-queue/* branch and fires the merge_group event, and a workflow that triggers only on pull_request and push never runs there, so its checks never report and every queue entry times out. ci.yml and quality.yml now also run on merge_group.

Nothing else changes. The jobs gated on github.event_name == 'push' (coverage, notify-demos) stay skipped on the queue branch as they are on pull requests, and the clang-tidy job falls back to its full-tree scan there because there is no pull request diff to narrow it to.


Issue

No issue. Two on: blocks, needed before the queue can be enabled.


Type

  • Bug fix
  • New feature or tests
  • Breaking change
  • Documentation only

Testing

  • Both workflow files parse; the diff is the on: block in each and nothing else.
  • The event syntax is the documented form from "Events that trigger workflows" (merge_group: types: [checks_requested]).
  • The first queued merge after this lands is the test: every required check must report on the merge_group run.

Checklist

  • Breaking changes are clearly described (and announced in docs / changelog if needed)
  • Tests were added or updated if needed
  • Docs were updated if behavior or public API changed

GitHub's merge queue builds a temporary gh-readonly-queue/* branch and
fires the merge_group event; workflows that only trigger on
pull_request/push never run there, so required status checks report
nothing and every queue entry times out. Add merge_group as a trigger
to both workflows so their jobs run when a PR enters the queue.
@bburda bburda self-assigned this Sep 13, 2026
branches: [main]
push:
branches: [main]
merge_group:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

On merge_group every actions/cache step here (and in ci.yml) saves under the gh-readonly-queue ref. No other run can restore from that ref, so each queue entry adds roughly 1-1.5 GB of dead ccache. We're already over the 10 GB quota and main has no ccache-jazzy-* entries left, so this will evict the main and PR caches and push the sanitizer jobs into cold builds. Can we split these into actions/cache/restore plus actions/cache/save with if: github.event_name != 'merge_group', like pixi.yml does with cache-write?

Comment thread .github/workflows/ci.yml
branches: [main]
push:
branches: [main]
merge_group:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

On merge_group, build-and-test and jazzy-test save about 0.5 GB of ccache under the gh-readonly-queue ref. The push to main that follows has the same sha but can't read that scope, so it rebuilds from restore-keys and saves the same key again. We're already at 10.1 GB of a 10 GB cap. Can we split those two steps into actions/cache/restore + actions/cache/save, with if: github.event_name != 'merge_group' on the save step?

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants