Run the Next.js e2e suite on Node, Bun, Deno and Cloudflare from one app, following #24598 (react-router-8-framework). Node stays the required job. Bun, Deno and Cloudflare start as optional variants and become required once green.
Depends on #24598 (runtime matrix key, runtimeEntryPlugin, README convention) and #24612 (Bun diagnostics channels, missing http.server span).
Apps
- Base:
nextjs-16
- Fold in, then delete:
nextjs-16-bun, nextjs-16-cf-workers
- New variants:
deno
Runtime variants run on the default build only, not on every webpack and Turbopack combination.
Using @sentry/nextjs together with @sentry/cloudflare crashed every request (#24603). The Cloudflare variant uses the entry the follow-up to #24603 settles on.
Cover on every runtime
The existing suite runs unchanged and branches on RUNTIME only where runtimes are expected to differ. Add assertions where the suite has none today:
Findings to confirm (runtime audit, September 2026, develop 6f2da7483d; database spans were measured with mysql or mysql2):
Setups the audit ran: Bun, Deno, Cloudflare
Done when
Run the Next.js e2e suite on Node, Bun, Deno and Cloudflare from one app, following #24598 (
react-router-8-framework). Node stays the required job. Bun, Deno and Cloudflare start as optional variants and become required once green.Depends on #24598 (runtime matrix key,
runtimeEntryPlugin, README convention) and #24612 (Bun diagnostics channels, missinghttp.serverspan).Apps
nextjs-16nextjs-16-bun,nextjs-16-cf-workersdenoRuntime variants run on the default build only, not on every webpack and Turbopack combination.
Using
@sentry/nextjstogether with@sentry/cloudflarecrashed every request (#24603). The Cloudflare variant uses the entry the follow-up to #24603 settles on.Cover on every runtime
The existing suite runs unchanged and branches on
RUNTIMEonly where runtimes are expected to differ. Add assertions where the suite has none today:fetchwithsentry-traceandbaggageFindings to confirm (runtime audit, September 2026, develop
6f2da7483d; database spans were measured with mysql or mysql2):fetchgets no span and no trace propagation #23891 has added outgoingfetchspans to@sentry/denosince. Every request also failed unlessenableRuntimeChannelInjectionwas off; the cause was JSONrequireunder the module hook, which fix(server-runtime-injection): Keeprequire()of JSON working on Deno #24412 addresses.Setups the audit ran: Bun, Deno, Cloudflare
Done when
nextjs-16runs its suite on Node, Bun, Deno and Cloudflarenextjs-16-bunandnextjs-16-cf-workersare deleted