Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
⏳ I'm reviewing this pull request for security vulnerabilities and code quality issues. I'll provide an update when I'm done |
|
✅ I finished the code review, and didn't find any security or code quality issues. |
sajclarke
had a problem deploying
to
github-pages
April 27, 2026 22:05 — with
GitHub Actions
Failure
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.
Description
Replaces the brittle Playwright timing measurements in the weekly performance report with real product analytics pulled from Umami.
The report now surfaces site-wide visits and per-form funnel health (starts, completions, abandonment, time-to-complete, per-step drop-off) with week-over-week deltas, and runs automatically every Monday so stakeholders always see fresh numbers.
Type of Change
Changes made
scripts/perf/umami-form-metrics.mjs(new)/eventsand/website/{id}/stats, then aggregatesform-start,form-submit, andform-step-*events into per-form funnels.sessionIdso reloads and repeat fires don't inflate counts. Pullsduration_secondsoffform-submitto compute mean / median / p90 completion time, and emits a daily series for sparklines.null(instead of throwing) whenUMAMI_API_KEYorNEXT_PUBLIC_UMAMI_SITE_IDis missing so PR forks and local runs degrade gracefully.scripts/perf/generate-performance-report.mjsPromise.allSettled, so a single failing call never blocks the report.tests/perf/metrics.spec.tsform page ready,search to results) and thetimingsfield from the emittedplaywright-metrics.json. The spec now only persists axe results, which is all the report still consumes from Playwright..github/workflows/performance-report.ymlscheduletrigger (15 12 * * 1, Mondays 12:15 UTC / 08:15 AST) — intentionally off-the-hour to dodge GitHub Actions cron contention.UMAMI_API_KEY,NEXT_PUBLIC_UMAMI_SITE_ID, andUMAMI_REPORT_DAYS=7into the report step, and extends the deploy job'sifso scheduled runs publish to GitHub Pages.Notes
NUMBER_WORDStable fromsrc/lib/analytics.tsso it has zero coupling to the Next.js source tree and can run in any CI image with just Node.MAX_EVENT_PAGESis set to 50 (50k events). When that cap is hit a row is flagged with a warning glyph in the table so readers know the numbers are a lower bound.Testing
UMAMI_API_KEYandNEXT_PUBLIC_UMAMI_SITE_IDin.env.local(already configured locally).npm run build && npm start.BASE_URL=http://127.0.0.1:3000 PERF_EXTERNAL_SERVER=1 UMAMI_REPORT_DAYS=7 npm run perf:report.performance-report/index.htmland verify:<details>blocks expand to show drop-off.UMAMI_API_KEY, rerun the script, and confirm both new sections show their "Skipped" placeholder instead of erroring.workflow_dispatch) to confirm the secrets are wired and the deploy job publishes.Related Github Issue(s)/Trello Ticket(s)
Checklist