Conversation
…amework Runs the same Playwright suite on Bun, Deno and Cloudflare (local workerd) as optional variants of the existing app, instead of one app per runtime. A variant can set a `runtime` matrix key (`bun` or `deno`), and CI installs that runtime for the job. The Cloudflare build uses its own Vite config with `@cloudflare/vite-plugin` and `sentryCloudflareVitePlugin`, and swaps in a workerd server entry with the new `runtimeEntryPlugin` from `@sentry-internal/test-utils/vite`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
JPeer264
added this pull request to stack #24600
September 22, 2026 16:42
Contributor
size-limit report 📦
|
This branch has not been deployed
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.
POC for running one framework e2e app on several server runtimes, instead of one app per runtime (Linear project P-JS-2537).
react-router-8-frameworknow has optional variants for Bun, Deno and Cloudflare (local workerd) that run the same Playwright suite as the Node job.A variant sets
RUNTIMEin a named script, andplaywright.config.mjspicks the start command from it. Bun and Deno reuse the Node build and only change the start command. Cloudflare has its ownvite.cloudflare.config.tswith@cloudflare/vite-pluginandsentryCloudflareVitePlugin, and the variant builds with--config. React Router has no option to pick a server entry, so the newruntimeEntryPluginfrom@sentry-internal/test-utils/viteloadsentry.server.cloudflare.tsxin its place. A newruntimematrix key (bun|deno) makes CI install that runtime, so new variants need no change tobuild.yml(the optional job had no Bun step at all). The convention is in the e2e README.The variants are optional because they are not green yet. Locally: Node 22/22, Deno 22/22, Bun 14/22, Cloudflare 11/22. The failures are mostly SDK gaps that will get their own tickets:
http.server.request.start, so@sentry/react-routergets nohttp.serverspans and no request data on errors.@sentry/react-routergetindex.client.js(browsercomes beforeworkerin the exports map), soSentry.flushandSentry.startSpanare undefined.sentryReactRouterandsentryCloudflareVitePlugintogether inject the orchestrion snippet twice and the build fails. The app turns offbuildTimeInstrumentationinsentryReactRouterfor now.sentry-tracemeta tag, and the/__manifestfilter does not apply.Two changes to the app are needed on every runtime: the Redis client is now made in the loader (workerd does not allow a socket connect at module scope), and the Cloudflare server entry is a separate file.
🤖 Generated with Claude Code