ci: run Test Workspace only on main, not on pull requests - #212
Merged
Conversation
The full workspace + failpoints suite was the slowest PR gate (~15min warm, up to the 75min cold ceiling) and dominated PR turnaround. Gate the `test` job with `if: github.event_name != 'pull_request'` so it runs only on push to `main` (post-merge), on `v*` tags, and on manual `workflow_dispatch`. `RustFS S3 Integration` needs `test`, so it becomes push-/dispatch-only by the same cascade. Drop `Test Workspace` from the required-check list in branch-protection.json: a required context that never reports on PRs (the job no longer runs there) would leave every PR permanently pending — the job-never-reports trap the policy already documents. Trade-off accepted deliberately (chosen by the maintainer): a regression the suite would catch now lands on `main` and reddens the post-merge run instead of being blocked pre-merge, so `main` can briefly break. Mitigations documented in ci.md: run `cargo test --workspace --locked` locally before merging non-trivial changes (or trigger the workflow on your branch via workflow_dispatch), and regenerate openapi.json locally for server/API changes (the auto-regen step lived in the now-PR-skipped test job). The fast PR gates remain: Classify Changes, Check AGENTS.md Links, the AWS-feature build/test, and the two CODEOWNERS checks. NOTE: an admin must run ./scripts/apply-branch-protection.sh after this merges, or GitHub keeps requiring the now-unreported Test Workspace context. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
aaltshuler has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
This was referenced Jun 13, 2026
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.
The full workspace + failpoints suite was the slowest PR gate (~15min warm, up to the 75min cold ceiling) and dominated PR turnaround. This gates the
testjob withif: github.event_name != 'pull_request'so it runs only on push tomain(post-merge),v*tags, and manualworkflow_dispatch.RustFS S3 Integrationneeds: test, so it becomes push-/dispatch-only by the same cascade.Test Workspaceis dropped from the required-check list inbranch-protection.json: a required context that never reports on PRs would leave every PR permanently pending (the job-never-reports trap the policy already documents).Trade-off (chosen deliberately by the maintainer)
A regression the suite would catch now lands on
mainand reddens the post-merge run instead of being blocked pre-merge —maincan briefly break. Mitigations (documented inci.md):cargo test --workspace --lockedlocally before merging non-trivial changes, or trigger this workflow on your branch via the Actions "Run workflow" button.openapi.jsonis no longer auto-regenerated on PRs (that step is in the PR-skippedtestjob) — regenerate locally for server/API changes:OMNIGRAPH_UPDATE_OPENAPI=1 cargo test -p omnigraph-server --test openapi.Fast PR gates that remain:
Classify Changes,Check AGENTS.md Links,Test omnigraph-server --features aws, and the two CODEOWNERS checks.An admin must run
./scripts/apply-branch-protection.shimmediately after this merges, or GitHub keeps requiring the now-unreportedTest Workspacecontext and every open PR stays permanently pending.🤖 Generated with Claude Code