Repository navigation
ci: light secret-free jobs to GitHub-hosted runners (owner R309/R312) - #512
Closed
luisleo526 wants to merge 3 commits into
Closed
luisleo526 wants to merge 3 commits into
luisleo526 wants to merge 3 commits into
Conversation
… (CI-RUNNER-SPLIT, R309 + R312) authz, changes and the aggregate `build` gate of ci.yml and ci-post.yml, the authz job of corpus-parity, corpus-parity-subset, docs, docs-post, native-live and release-ruleset-probe, and the docs build now run on `ubuntu-24.04`. The big jobs (preflight, build/sanitizer/kernel matrices, corpus parity, native-live) stay on the pf-gcp fleet, and the credentialed jobs (docs-post build, promote, release, notify-hub, probe) stay internal. Nothing else in the workflows changes. scripts/ci_preflight.py pins exactly these jobs to the hosted image and still refuses a big or credentialed job on a hosted label and any unlisted label; the tests, docs/ci.md, AGENTS.md and the release-gate test's routing prose follow. Fork pull requests on hosted runners run without our secrets, so the VM-only fork-refusal hook is not needed for the moved jobs. Rollback is relabelling a job back to its pf-gcp label. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… in a separate docs PR) AGENTS.md is not on the ci-only allow-list, so this PR carries only allow-listed paths. The same three lines go into a tiny docs PR that lands right after this one; until then AGENTS.md still describes the old routing. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…e runner split rewrites (3a0d150) test_release_ruleset_probe_workflow_is_installed_and_pinned still expected the probe's authz job on the PR fleet; it now expects the pinned hosted image, matching RELEASE_JOB_RUNNERS. docs/ci.md rewrites routing sentences that 3a0d150 (ci(cr233): split the PR wall from full-event verification, squash of #477) introduced, because the routing they describe changes with this PR: "No job chooses its label by event."; "`corpus-parity-subset.yml` is reusable only from the PR pipeline;"; "`corpus-parity.yml` keeps full parity and the full-event subset on the post fleet."; "The checker follows local reusable calls, so a PR caller cannot borrow a post workflow even behind a job condition."; "FLEET-POST=A (laneboss bulletin #1083, CR-233 ADD 2) supersedes the earlier non-release fleet policy."; "Each non-release workflow has one event class and one literal scheduler array, including authz, classification and aggregates:"; "The fleet is inferred from events and caller reachability, independently of workflow file names and job conditions."; "The command table pins job inventory and core-count usage, without assigning fleets by file name." The big and credentialed jobs keep the fleet routing those sentences described; only the named light jobs move to the hosted image. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Collaborator
Author
luisleo526
added a commit
that referenced
this pull request
Oct 25, 2026
… (CI-RUNNER-SPLIT, R309 + R312) (#514) authz, changes and the aggregate `build` gate of ci.yml and ci-post.yml, the authz job of corpus-parity, corpus-parity-subset, docs, docs-post, native-live and release-ruleset-probe, and the docs build now run on `ubuntu-24.04`. The big jobs (preflight, build/sanitizer/kernel matrices, corpus parity, native-live) stay on the pf-gcp fleet, and the credentialed jobs (docs-post build, promote, release, notify-hub, probe) stay internal. Nothing else in the workflows changes. scripts/ci_preflight.py pins exactly these jobs to the hosted image and still refuses a big or credentialed job on a hosted label and any unlisted label; its tests (including the probe workflow pin), docs/ci.md and the release-gate test's routing prose follow. Fork pull requests on hosted runners run without our secrets, so the VM-only fork-refusal hook is not needed for the moved jobs. Rollback is relabelling a job back to its pf-gcp label. AGENTS.md follows in its own docs PR. docs/ci.md rewrites routing sentences that 3a0d150 (ci(cr233): split the PR wall from full-event verification, squash of #477) introduced, because the routing they describe changes with this PR: "No job chooses its label by event."; "`corpus-parity-subset.yml` is reusable only from the PR pipeline;"; "`corpus-parity.yml` keeps full parity and the full-event subset on the post fleet."; "The checker follows local reusable calls, so a PR caller cannot borrow a post workflow even behind a job condition."; "FLEET-POST=A (laneboss bulletin #1083, CR-233 ADD 2) supersedes the earlier non-release fleet policy."; "Each non-release workflow has one event class and one literal scheduler array, including authz, classification and aggregates:"; "The fleet is inferred from events and caller reachability, independently of workflow file names and job conditions."; "The command table pins job inventory and core-count usage, without assigning fleets by file name." The big and credentialed jobs keep the fleet routing those sentences described; only the named light jobs move to the hosted image. Supersedes PR #512 (same change; its first commit lacked the 3a0d150 naming, which the doc-reverts check requires per commit and a later fix commit cannot supply; no force-push, so this is a new branch with the whole change in one commit). Co-authored-by: Claude Sonnet 5.5 <[email protected]>
luisleo526
added a commit
that referenced
this pull request
Oct 25, 2026
…513) * docs(agents): the CI routing paragraph names the hosted light jobs (companion to the runner split) AGENTS.md lines 16-18 now say that the big jobs stay on the pf-gcp fleets, the secret-free light jobs (authz, changes, build gates, the docs build) run on the pinned hosted image ubuntu-24.04, and rollback is relabelling. Three lines replaced by three lines: the file keeps its 160 lines, so the content-hashed doc anchors do not move. Lands right after the runner split PR; until then the file describes the old routing. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> * ci: run the light secret-free CI jobs on a pinned GitHub-hosted image (CI-RUNNER-SPLIT, R309 + R312) (#514) authz, changes and the aggregate `build` gate of ci.yml and ci-post.yml, the authz job of corpus-parity, corpus-parity-subset, docs, docs-post, native-live and release-ruleset-probe, and the docs build now run on `ubuntu-24.04`. The big jobs (preflight, build/sanitizer/kernel matrices, corpus parity, native-live) stay on the pf-gcp fleet, and the credentialed jobs (docs-post build, promote, release, notify-hub, probe) stay internal. Nothing else in the workflows changes. scripts/ci_preflight.py pins exactly these jobs to the hosted image and still refuses a big or credentialed job on a hosted label and any unlisted label; its tests (including the probe workflow pin), docs/ci.md and the release-gate test's routing prose follow. Fork pull requests on hosted runners run without our secrets, so the VM-only fork-refusal hook is not needed for the moved jobs. Rollback is relabelling a job back to its pf-gcp label. AGENTS.md follows in its own docs PR. docs/ci.md rewrites routing sentences that 3a0d150 (ci(cr233): split the PR wall from full-event verification, squash of #477) introduced, because the routing they describe changes with this PR: "No job chooses its label by event."; "`corpus-parity-subset.yml` is reusable only from the PR pipeline;"; "`corpus-parity.yml` keeps full parity and the full-event subset on the post fleet."; "The checker follows local reusable calls, so a PR caller cannot borrow a post workflow even behind a job condition."; "FLEET-POST=A (laneboss bulletin #1083, CR-233 ADD 2) supersedes the earlier non-release fleet policy."; "Each non-release workflow has one event class and one literal scheduler array, including authz, classification and aggregates:"; "The fleet is inferred from events and caller reachability, independently of workflow file names and job conditions."; "The command table pins job inventory and core-count usage, without assigning fleets by file name." The big and credentialed jobs keep the fleet routing those sentences described; only the named light jobs move to the hosted image. Supersedes PR #512 (same change; its first commit lacked the 3a0d150 naming, which the doc-reverts check requires per commit and a later fix commit cannot supply; no force-push, so this is a new branch with the whole change in one commit). Co-authored-by: Claude Sonnet 5.5 <[email protected]> --------- Co-authored-by: ci-cx <ci-cx@invalid> 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.
CI runner policy (owner R309 + R312, bulletin #1393, canon LB-475): the light, secret-free jobs move to GitHub-hosted
ubuntu-24.04; big runs and credentialed jobs stay on our VMs.Moved (14
runs-onlines in 8 workflows): ci and ci-post authz, changes, build-gate; the authz jobs of corpus-parity, corpus-parity-subset, docs-post, native-live and release-ruleset-probe; docs authz + build. Unchanged: preflight, corpus-parity(-subset) runs, native-live jobs, build/sanitizer/kernel matrices, release prebuilt, and the credentialed docs-post build, promote, release, notify-hub and probe.scripts/ci_preflight.py+ tests pin the new labels;scripts/test_ci_release_gate.pyrequires the updated prose; docs/ci.md and AGENTS.md describe the split and the rollback (relabel to the priorpf-gcp-pr/pf-gcp-postarray). Line counts kept.PR CI wall time before: median 10m55s over the last 3 green PR runs; after: this PR's own green run (reported on the PR). Tests run in PR CI only.
🤖 Generated with Claude Code