Repository navigation
Conversation
EMDASH_E2E_BUILD=production now builds the Node fixture with `astro build --devOutput` and serves dist/server/entry.mjs instead of running `astro dev`. The build keeps `import.meta.env.DEV` true, so the dev-bypass, dev-reset and captured-email endpoints the suite depends on work without any test switch in EmDash. Also fixes what a built fixture exposes: manual i18n routing so the fixture's [locale] pages win over Astro's fallback routes, sharp for the image endpoint, the registry fixture installed at server start, an https image URL for the CSP, and an ignore rule for the migrations journal that builds write into the fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The build-time registry check only allowed localhost for `astro dev` and `astro sync`, while the runtime check follows import.meta.env.DEV. A --devOutput build therefore failed at build time although the built site would accept the URL. Astro sets NODE_ENV=development for --devOutput before loading the config, so the build check uses that. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ostenbom
force-pushed
the
e2e/dev-output-build
branch
from
October 27, 2026 20:49
a1be93e to
7f36235
Compare
9 of 22 tasks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ostenbom
marked this pull request as ready for review
October 29, 2026 23:47
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.
What does this PR do?
Most of the Node E2E time goes to
astro devcompiling pages on first request. This PR runs the Node shards against a built fixture instead, usingastro build --devOutput. This is a simpler way of retaining existing methods of "dev only" functionality while providing a small speed boost.It's opt-in:
EMDASH_E2E_BUILD=productionswitchese2e/global-setup.tsto build and serve the fixture, and CI sets it only for the Node step. The Cloudflare step and the 8-shard layout are unchanged. The rest is what the fixture needs to work as a built site: manual i18n routing, asharpdependency, the registry fixture installed from middleware, and anhttps:image URL in one test. There is also one small core fix. The build-time registry check rejected the suite's localhost mock marketplace for--devOutputbuilds, even though the built site accepts it at runtime.astro dev(main)astro build --devOutput(this PR)A real production build is a lot faster (2.8 min), but it needs a new config option; that's #7. For a full local run you also need the test fixes in #10. I also tried this build on Endform, which runs the whole suite in one job against a single server (#8). Under that load the dev-output server times out, and the production build doesn't.
Honestly I think #7 is better - long term this will provide a more stable suite, if you accept the tradeoffs.
I used claude to help me create this PR, but I have run the suite and reviewed the code myself.
Type of change
Your connection to this change
Checklist
pnpm typecheckpassespnpm lintpassespnpm testpasses (or targeted tests for my change): full Node E2E suite against the dev-output build (344 passed, 34 skipped)pnpm formathas been runAI assistance disclosure
Screenshots / test output
Not applicable.