Repository navigation
ci: PR tier on hosted runners, docs-only fast path, cancel only superseded PR runs - #145
Merged
Merged
Conversation
…seded PR runs Part of the org PR-tier order (bulletin #729). - ci.yml, docs.yml, native-feed.yml: every pull_request job runs on a hosted runner (no self-hosted pool VM in a PR); push, dispatch and schedule keep today's routing. - concurrency: cancel-in-progress only for pull_request. - new `changes` job (hosted, PR only): a docs-only PR skips the four runtime jobs; the Python matrix and `release/ready` always run. - names kept; tests/test_pr_tier_workflows.py pins the routing, the cancel rule and the docs-only rule with must-fail forms; tests/test_release_adapter.py expects the exact new job set (not loosened). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.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.
Title:
ci: PR tier on hosted runners, docs-only fast path, cancel only superseded PR runsWhy. PR CI for same-repo PRs ran on the self-hosted pool, so the wall time was dominated by pool queueing, not by work. Measured on the last 100 completed PR runs: PR wall (code PRs, 30 heads) median 1.2 min, p90 19.1 min, max 75.8 min; the CI jobs themselves run 18-118 s (CI run 39246686140: job queue 113-1570 s). Rule #720: no pool VM in a PR.
What.
ubuntu-24.04for everypull_request; push to main and workflow_dispatch keep today's runners.ci.yml: new PR-onlychangesjob; a PR that touches onlydocs/**,mkdocs.yml,README.md,CONTRIBUTING.mdorLICENSEskipsDocker runtime,Database E2E,Release contractandDistribution. The Python matrix always runs (it holds the documentation link test).release/readyaccepts exactly that outcome and writes no release evidence for it; push to main and every code PR (including the App's release PRs) still require all five jobs and produce the evidence.docs.yml: concurrency cancels only superseded PR runs (wascancel-in-progress: truefor every ref).ready.needsupdated; newtests/test_pr_tier_workflows.pypins the routing, cancellation, permissions, the docs-only classification and therelease/readygate, each with must-fail forms.Before / after job list (no workflow has a
scheduletrigger)changes(new)Python 3.11/3.12/3.13Docker runtimeDatabase E2ERelease contractDistributionrelease/readybuilddeploynative/feed/**and the workflow file)Release (ubuntu-24.04)Release (ubuntu-24.04-arm)Release (macos-14)ASan + UBSanTSanNot PR-triggered and untouched:
release.yml,pineforge-release.yml,release-report.yml. Nothing was moved off the PR tier, so no job gains a detection delay; the four docs-only skips still run in the post-merge push CI.Measured PR wall time before this PR (pineforge-data, code PRs: 30 heads): median 1.2 min, p90 19.1 min, max 75.8 min. Successful attempt-1 runs, queue included, last 100 completed PR runs, optimistic. Source:
/Users/haoliangwen/.local/state/pineforge/runner/ORG-CX/proof/CI-SLIM/pr-wall/README.md(84 runs for this repo; reproduced frompineforge-data.codepr.tsv: 70 s, 1149 s, 4550 s). Per workflow (same method): CI median 66 s, p90 78 s, max 2504 s (n=30); Native feed median 375 s, p90 746 s (n=6); Documentation median 23 s (n=28).Expected after (ESTIMATE, not measured): code PR about 1.5 min on CI (hosted run 39193757764 took 76 s end to end, plus about 12 s for
changes); docs-only PR about 1 min; a PR touchingnative/feed/**about 7.5 min (TSan is the longest job: 372 s hosted on 10-04, 429-442 s on the pool). The real numbers come from this PR's own runs and the next real PRs.How to check. This PR runs
CI,DocumentationandNative feedon hosted runners. A throwaway one-linedocs/index.mdPR shows the docs-only path.🤖 Generated with Claude Code