Repository navigation
ci(fork): merge queue, path-scoped PR checks, cancel superseded runs (WI-1886) - #35
Merged
Merged
Conversation
…(WI-1886) fork-ci runs on merge_group, diffing the queued group against the queue's base. PRs that touch nothing under codex-rs/ or .github/ skip the Rust steps but still report. Concurrency cancels per ref. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: thedancingdeveloper <306930456+thedancingdeveloper@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WI-1886: CI cost. Same treatment vogt got on
wi-1886-merge-queue. Seedocs/ci.md.Changes (
fork-ci.ymlonly; no upstream workflow is edited)merge_grouptrigger. In the queue, the changed-package diff runs againstmerge_group.base_sha, so it covers the whole queued group.cargo check --workspacestill compiles everything.codex-rs/or.github/skips the Rust steps. The job still reportsfmt, clippy, testas passed, so a required check never waits on it.fork-ci-${{ github.ref }}with cancel-in-progress. A force-push cancels the superseded run, and queue refs are unique per entry.docs/ci.md, plus a pointer inFORK.md§ Workflows. The fork has no root AGENTS.md or CLAUDE.md, and README.md is upstream's, so I left those alone to keep upstream rebases conflict-free.merge_groupruns on the self-hosted GCPrust-heavyrunner. Only PRs from other forks use GitHub-hosted runners.Deliberate difference from vogt: the queue is package-scoped, not a full run. A workspace-wide nextest takes about an hour, and upstream test debt makes it fail regardless of the PR. Rationale is in
docs/ci.md.Operator: ruleset to approve (not applied)
fork/maincurrently has no protection and no ruleset.POST repos/TheDancingDeveloper-org/codex/rulesets:{"name":"fork/main merge queue","target":"branch","enforcement":"active", "bypass_actors":[{"actor_id":5,"actor_type":"RepositoryRole","bypass_mode":"always"}], "conditions":{"ref_name":{"include":["refs/heads/fork/main"],"exclude":[]}}, "rules":[ {"type":"required_status_checks","parameters":{"strict_required_status_checks_policy":false,"required_status_checks":[{"context":"fmt, clippy, test","integration_id":15368}]}}, {"type":"merge_queue","parameters":{"merge_method":"MERGE","max_entries_to_build":2,"min_entries_to_merge":1,"max_entries_to_merge":3,"min_entries_to_merge_wait_minutes":5,"grouping_strategy":"ALLGREEN","check_response_timeout_minutes":90}}]}--force-with-leaserebase offork/mainpossible. Drain the queue before a sync.MERGEmatches how fork PRs land today (merge commits, e.g. Integration: drift check and upstream rust-v0.162.1 fixes (WI-1125) #33).Not verified
actionlintonfork-ci.ymlis clean.Do not merge without operator approval.
🤖 Generated with Claude Code