Repository navigation
ci: move post-merge verification to GCP and forbid paid runners - #555
Merged
Merged
Conversation
Route the amd64 post shards (Release, Debug, kernel, sanitizers), the native shards and both live sanitizer profiles to ["self-hosted","pf-gcp-post"]. Shard counts, matrices, verification commands, aggregates and check names are unchanged. The workflow checker now refuses every numeric pf-linux-x64 and pf-linux-arm64 label and every large/larger/xlarge suffix at every job, with no per-job exception, and the paid label declarations leave the actionlint config. docs/ci.md is rewritten line for line and stays at 2014 lines. These sentences, introduced by 3ea5a0d (the routing and capacity claims), are replaced: - "Post Release/Debug/kernel and native shards use `pf-linux-x64-16`; post sanitizers use `pf-linux-x64-32`; native-live sanitizers use `pf-linux-x64-64`." - "One full post run needs four x64-16 and two x64-64 native runners concurrently." - "The amd64 post build shards request hosted `pf-linux-x64-16`; the two arm64 post cells run on hosted `ubuntu-24.04-arm`." - "Hosted exceptions include the named light jobs, amd64 post shards, native profiles, arm64 and the existing release/promotion pins." - "`native-live.yml` runs four `native` shards on hosted `pf-linux-x64-16`; `live-sanitizers` and `live-tsan` each build once on hosted `pf-linux-x64-64`." - "The four amd64 post legs and native verification use hosted runners; their aggregates use the light image." - The `ci-post.yml` and `native-live.yml` rows of the workflow table that name the pf-linux labels. - "Hosted shards also run on a branch dispatch; the remaining post fleet still requires `main`." - "Release uses four `build` shards, Debug two `build-debug` shards, and kernel two shards on 16 cores; sanitizers uses four on 32 cores." - "`HOSTED_JOB_RUNNERS` pins hosted jobs; its larger/arm64 exceptions exclude PR callers." - "Larger labels are allowed only at their exact named jobs' `runs-on` keys; `larger_runner` keys stay refused." The historical timing sentence introduced by 0212cab keeps every measured value and only names the former paid pool. The rollback sentence introduced by b0f4341 no longer tells a reader to restore a paid label. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
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.
Move the post-merge verification legs back to the GCP post fleet and forbid paid runners
What changes
native-liveis one job with the profileslive-sanitizersandlive-tsan) run on["self-hosted","pf-gcp-post"]instead of a paid larger runner:ci-post.ymljobsbuild(Release shards),build-debug,sanitizers,kernel-only;native-live.ymljobsnative-liveandnative-live-shards.build-armstays on the standardubuntu-24.04-armlabel. Release and promotion pins are untouched.scripts/ci_preflight.py: the six jobs are pinned to the exact two-label post array (a scalar, a reordered array, an extra label,pf-gcp-prorpf-gcp-mainis refused); everypf-linux-x64-<n>/pf-linux-arm64-<n>label and everylarge/larger/xlargesuffix is refused at every job with no exemption (the old per-job exception helper is deleted). Note: a suffixed spelling such aspf-linux-x64-16-foois not matched by the regex; it is not a declared label, so actionlint refuses it..github/actionlint.yaml: the threepf-linux-x64-*labels are removed.docs/ci.md: rewritten line for line, still 2014 lines. The removed sentences and their introducing commits are named in the commit message.Capacity (facts from the workflows and the fleet)
c3d-standard-8, 2 runners each = 12 runners at 8 vCPU per VM.preflight+preflight-slow+ the twocorpus-parity.ymlexecutions (ci-post.ymlcalls it twice,mode: subsetandmode: full; the other job of each call is skipped). With the cost-balanced shard counts of the held shard change (Release 6, Debug 3, native 8) the round has 29 jobs.timeout-minutes(the workflows carry only the comment that none is set), so there is no timeout margin to list.Proof
🤖 Generated with Claude Code