Skip to content

Split landed CI and native builds onto GKE pods - #162

Merged
luisleo526 merged 4 commits into
mainfrom
ci/post-merge-pods
Oct 28, 2026
Merged

luisleo526 merged 4 commits into
mainfrom
ci/post-merge-pods

Conversation

@luisleo526

Copy link
Copy Markdown
Contributor

Splits CI so that pull requests keep running on hosted runners and post-merge runs (push to main and manual dispatch) go to GKE runner pods.

  • ci.yml runs on pull requests only, on the standard hosted label.
  • A new push-only ci-post.yml runs the same jobs on bare gke-<size>-<arch> pods. Jobs that need the runner's Docker (PostgreSQL service, testcontainers) or other hosted-only features stay hosted.
  • A policy test compares the real steps of every job shared by the two files, key by key. Only the runner labels and the named, supplied pins may differ. A mutation row proves it catches drift.
  • docs/ci.md describes the routing.

The org policy checker reports no added findings against main.

🤖 Generated with Claude Code

luisleo526 and others added 4 commits October 28, 2026 11:00
ci.yml and native-feed.yml now trigger on pull_request only and keep their
hosted jobs, displayed names and required checks unchanged. The new
ci-post.yml and native-feed-post.yml run on push to main and workflow_dispatch:
authz and a main-ref guard stay hosted, the proof jobs take bare scalar GKE
labels sized from their needs, and one hosted aggregate keeps the name `check`.
database-e2e and the macOS leg stay hosted. docs.yml is unchanged because the
Pages actions have no verified immutable pins.

The release evidence reader and the recovery query now follow the landed run
to ci-post.yml, and pin the exact bytes of both workflow files.

Replaced documentation sentences (docs/releasing.md):
- "The App's merge triggers ordinary main CI." is now
  "The App's merge triggers ci-post.yml on main."
- "The landed main CI still authorizes the exact wheel/sdist bytes used by the
  existing publisher." is now "The landed ci-post.yml run authorizes the exact
  wheel/sdist bytes used by the existing publisher."

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Wrap the over-long upload-artifact pin line (E501) and write the
ci-post.yml match pattern as a raw escaped string (RUF043). No behaviour
change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No run before merge shows a working Docker daemon on a gke-4cpu-8gb-amd64 pod,
and a red main on this repository blocks the next release upload. Both jobs
go back to ubuntu-24.04 (with PF_CI_LABELS to match); their steps, including
the docker info check, are unchanged. The reviewed ci-post.yml digest in the
release evidence reader and the route table in the post-merge workflow test
follow.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…a pod

The runner row of test_post_ci_control_rejects_reverting_a_proof set the
Distribution job to ubuntu-24.04, which is now its correct runner, so the
mutation no longer changed anything and the control did not raise. It now sets
the ready job, which must stay on a pod, to the hosted runner.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@luisleo526
luisleo526 merged commit 60c912b into main Oct 28, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant