Skip to content

ci: PR-side deploy verification against real Vercel previews - #992

Merged
blove merged 16 commits into
mainfrom
blove/pr-side-deploy-verification
Sep 4, 2026
Merged

ci: PR-side deploy verification against real Vercel previews#992
blove merged 16 commits into
mainfrom
blove/pr-side-deploy-verification

Conversation

@blove

@blove blove commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Why

Landing #963 took nine fix PRs (#967, #970, #973, #974, #981, #982, #983, #984, #987), every one repairing a step only the push-only deploy job executes. Spec: docs/superpowers/specs/2026-09-03-pr-side-deploy-verification-design.md. Plan: docs/superpowers/plans/2026-09-03-pr-side-deploy-verification.md.

What

  • Website — e2e (deployed preview) (website-preview-e2e): assembles the examples with a deterministic Website alias in their parent-origin policy, deploys them as an examples preview under threadplane-examples-pr-<n>-cacheplane.vercel.app, builds and deploys the Website as a preview pointed at that alias under threadplane-pr-<n>-cacheplane.vercel.app, and runs the ordinary suite against it. A Playwright global setup (apps/website/e2e/runtime-bypass-setup.ts) seeds the examples origin's bypass cookie as storage state so the runtime iframe reaches Ready on a protected preview.
  • Cockpit — immutable preview smoke (cockpit-preview-smoke): deploys a throwaway cockpit preview, runs the 399-probe smoke against it, and removes it.
  • Both join CI — required through require_preview, which applies the scoped rule only when the lanes were eligible to run (same-repo PR or merge-queue candidate), so fork PRs stay green while the lanes skip.
  • Hardening found in review: set -euo pipefail plus URL validation on every preview deploy, no --skip-domain on preview deploys (Vercel requires it to accompany --prod), secret redaction in setup errors, SameSite=None on the seeded cookie.

Provisioning

VERCEL_EXAMPLES_AUTOMATION_BYPASS_SECRET was generated on the threadplane-examples project and stored before this PR was opened. Because this PR edits ci.yml, every scope is on and both lanes run here.

Verification

  • Unit: runtime-bypass-setup.spec.ts 9/9 (loopback server cases for cookie capture, SameSite normalization, redaction), playwright-config.spec.ts 10/10, ci-workflow.spec.mjs 41/41.
  • Live probes recorded in the spec: preview aliasing works; a valid per-origin cookie survives a wrong-project bypass header; vercel build env precedence.
  • This PR's own run is the first live execution; a mutation check (reintroducing the fix(website): keep the post-promotion e2e run off the local fixture runtime #983 host-bound route abort on a throwaway branch) follows before merge.

🤖 Generated with Claude Code

blove and others added 14 commits September 3, 2026 15:48
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…bypass cookie

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…tifact dirs

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e, SameSite=None, loopback tests

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…iews

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… origin

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… throwaway preview

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…examples preview

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…equest a SameSite=None bypass cookie

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ligible to run

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadplane Ready Ready Preview Sep 4, 2026 1:01am UTC

Request Review

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

blove and others added 2 commits September 3, 2026 17:41
…cookie header off the runtime origin; cover the 307 bypass answer

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… samesitenone, cockpit cleanup

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit 11a4ff7 into main Sep 4, 2026
77 checks passed
@blove
blove deleted the blove/pr-side-deploy-verification branch September 4, 2026 01:52
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