Skip to content

ci: isolate public tests and route trusted deploys separately - #23

Merged
TueJon merged 2 commits into
mainfrom
ci/public-runner-isolation-20261024
Oct 24, 2026
Merged

TueJon merged 2 commits into
mainfrom
ci/public-runner-isolation-20261024

Conversation

@TueJon

@TueJon TueJon commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Public PR tests currently run as vd alongside host deployment credentials. Route them to the prepared ci-public account, which has no sudo/Docker access and cannot traverse /home/vd. Keep fork guards and approval requirements, and verify the account boundary in each run.

Validation: this PR runs the existing full CI on the isolated runner. Host rollout is tracked by vdfw-runner-privilege-separation-2026-10-22; existing runner retirement follows green main/deploy evidence and the required host approval.

The site deployment job stays on vd with the separate tuejon-deploy label and its existing forced-command key. Merge is held for production cutover approval; no site files change. Labels route jobs and do not prevent an approved malicious workflow from targeting the deploy runner.

@TueJon TueJon added the enhancement New feature or request label Oct 24, 2026
@TueJon TueJon self-assigned this Oct 24, 2026
@TueJon
TueJon marked this pull request as draft October 24, 2026 15:02
@TueJon
TueJon marked this pull request as ready for review October 24, 2026 15:10

@TueJon TueJon left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: ship_it — no blocking findings at 33c0e33.

Reviewed the exact head. Diff is limited to .github/workflows/site.yml; no site file or target-owned handler is touched. Exact-head CI: test passed on runner vd-fw-webmcpify-at-public (labels tuejon-ci,ci-public), including the new Verify runner isolation step; deploy is skipped for PR events as expected.

Notes (non-blocking):

  1. deploy now needs the tuejon-deploy label, which no runner carries yet — the live runner list for this repo is vd-fw-webmcpify-at (tuejon-ci) and vd-fw-webmcpify-at-public (tuejon-ci,ci-public). The merge commit itself triggers a push deploy, so the label must be added to site runner id 2 before merge (cutover step 3 in knowledge/vd-fw/public-ci-runner-isolation.md). That is host rollout, not a change required in this PR; flagging only to keep merge order explicit.
  2. The isolation assertions are host-coupled by design (account ci-public, no sudo/docker groups, no /home/vd access via ACL + ProtectHome). They currently pass and fail closed if the unit/ACL regresses; changing the runner account or path layout later will require updating this step.
  3. Residual, already stated in the PR body: an approved fork workflow can still edit runs-on and select the privileged tuejon-deploy runner — labels are routing, not authorization. Not introduced by this diff.

CI is green at this head; no further source change requested.

@TueJon
TueJon merged commit c16a809 into main Oct 24, 2026
3 checks passed
@TueJon
TueJon deleted the ci/public-runner-isolation-20261024 branch October 26, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant