Repository navigation
feat(ci): per-PR preview deployments on gh-pages with boot check - #80
Conversation
Switch Pages deployment from the actions/deploy-pages artifact flow to a gh-pages branch flow so per-PR previews can live alongside prod: - deploy.yml: on push to main, build and replace the gh-pages branch root while preserving previews/; serialized via concurrency group "pages". - pr-preview.yml: on same-repo PR open/sync, build with VITE_BASE_PATH=/Demonstrable-Plotalizer/previews/pr-<N>/ and publish to previews/pr-<N>/ on gh-pages; maintains a sticky PR comment with the preview URL. Shares the "pages" concurrency group. - pr-preview-cleanup.yml: on PR close, remove previews/pr-<N>/. - vite.config.ts: respect VITE_BASE_PATH as a base-path override. - checks/preview-boot.mjs: regression guarantee (b) - puppeteer-core + system Chromium boot check asserting the app renders the sample matrix with no page/console errors (puppeteer-core added as devDependency). - index.html: drop dead /vite.svg favicon link (404'd under any base path). - PLAN.md: mark queue item 1 shipped; note the Pages source must be flipped to "deploy from branch gh-pages" at merge time. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152hQSk9mV9zoZJBSRAJQWn
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
Next review available in: 56 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Preview deployment
Published to |
What
PLAN.md queue item 1: per-PR preview staging infra, unblocking the visual review flow.
deploy.yml(rewritten): Pages deployment moves from theactions/deploy-pagesartifact flow to agh-pagesbranch flow. On push to main it builds with the prod base path and replaces the branch root, preservingpreviews/. Serialized underconcurrency: group: "pages".pr-preview.yml(new): on same-repo PR open/synchronize/reopen (guarded byhead.repo.full_name == github.repository), builds withVITE_BASE_PATH=/Demonstrable-Plotalizer/previews/pr-<N>/and publishes topreviews/pr-<N>/ongh-pages, keeping everything else. Posts/updates a sticky comment with the preview URL:https://dbolser.github.io/Demonstrable-Plotalizer/previews/pr-<N>/. Shares the"pages"concurrency group so prod and preview publishes never race.pr-preview-cleanup.yml(new): on PR close, removespreviews/pr-<N>/fromgh-pages.vite.config.ts: now respects aVITE_BASE_PATHenv override (falls back to the existing prod/dev behavior).?data=/#view=links already work under a subpath — the app only usesimport.meta.env.BASE_URL(sample CSV) and relative paths; no hardcoded absolute paths remain.index.html: dropped the dead/vite.svgfavicon link — the file doesn't exist and 404'd under any base path (including current prod).checks/preview-boot.mjs+puppeteer-coredevDependency; PLAN.md updated (item 1 shipped, working-agreement note on the Pages source setting).Why
Dan reviews each PR visually on the site; each open PR needs its own deployed build (PLAN.md working agreement item 2).
Regression guarantee
Guarantee (b):
checks/preview-boot.mjs— runnode checks/preview-boot.mjs <url>. Uses puppeteer-core + system Chromium; asserts the page loads, >0 matrix canvases render (the app auto-loads the sample CSV), and no page/console errors. Verified locally againstnpm run preview(12 canvases, clean pass; non-zero exit on a bad URL).Merge-time action required
The repo's Pages source setting must be flipped to "Deploy from a branch" →
gh-pages/ root when this merges (the artifact-based deploy path is removed by this PR). Until the first main push after merge createsgh-pages, the site keeps serving the last artifact deploy.Gates
npm run typecheckclean,npm run test:run361/361 green,npm run buildOK.🤖 Generated with Claude Code
https://claude.ai/code/session_0152hQSk9mV9zoZJBSRAJQWn