Harden landing e2e gate and migrate to vinext - #631
Merged
Conversation
added 5 commits
August 23, 2026 20:31
owjs3901
force-pushed
the
owjs3901/landing-vinext-migration
branch
from
August 23, 2026 15:34
921fcb0 to
90f7a5d
Compare
Contributor
Changepacks@devup-ui/wasm@1.0.75 → 1.0.76 - bindings/devup-ui-wasm/package.jsonPatch
@devup-ui/bun-plugin@1.0.12 → 1.0.13 - packages/bun-plugin/package.jsonPatch
@devup-ui/components@0.1.50 → 0.1.51 - packages/components/package.jsonPatch
@devup-ui/next-plugin@1.0.80 → 1.0.81 - packages/next-plugin/package.jsonPatch
@devup-ui/plugin-utils@1.0.10 → 1.0.11 - packages/plugin-utils/package.jsonPatch
@devup-ui/react@1.0.37 → 1.0.38 - packages/react/package.jsonPatch
@devup-ui/reset-css@1.0.24 → 1.0.25 - packages/reset-css/package.jsonPatch
@devup-ui/rsbuild-plugin@1.0.58 → 1.0.59 - packages/rsbuild-plugin/package.jsonPatch
@devup-ui/vite-plugin@1.0.64 → 1.0.65 - packages/vite-plugin/package.jsonPatch
@devup-ui/webpack-plugin@1.0.63 → 1.0.64 - packages/webpack-plugin/package.jsonPatch
|
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
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.
Summary
This lands the migration in the required two phases:
d0e1ad87).apps/landingfrom Next.js to vinext while keeping the Phase-1 assertions and snapshot pixels unchanged in the migration commit (e51124fd).A follow-up removes the standalone export copier/postprocessor and makes CI/CD consume vinext's native client output directly (
293f017b). The app exports every existing URL toapps/landing/dist/client, keeps MDX and dynamic component routes, and preserves theDEVUP_SINGLE_CSS=1build path through@devup-ui/vite-plugin.After merging the latest
main, the gate also covers the new custom-shorthands documentation route and uses explicit Linux/Windows screenshot baselines while retaining the 1% threshold (90f7a5d1).Phase 1: trustworthy gate
Coverage grew from 13 specs / 108 tests to 15 specs / 128 tests. The gate now:
The two documented flakes were fixed at their causes: tests now wait for required font weights, decoded images, stable document height, and finite animations; GitHub data is deterministic; image layout space is reserved; and hover polling re-aims the pointer while asserting the element is actually
:hover.Repeated pre-migration evidence:
Latest direct-output acceptance after merging current
main:Phase 2: vinext port
@mdx-js/rollup, RSC packages, and@devup-ui/vite-plugin;dist/clientdeployment-ready at generation time: the Vite config removes dead Devup CSS proxy dependencies from the RSC manifest, while the root layout installs the static-host.rsctransport;apps/landing/dist/client;export-static.mjs, theoutcopy, HTML mutation, and the redundant_not-found.htmlalias; GitHub Pages uses vinext's native404.html;useSearchParamsbailout;import.meta.globand narrows syntax-highlighter imports;vinext checkat 100% compatibility and TypeScript from a clean generated-output state.Measurements
Measured on the same Windows machine from clean generated output. Browser transfer values are raw local response bodies after
networkidle, with GitHub/GTM made deterministic in both runs. Artifact table rows exclude the separately built Storybook directory because it is the same CI input in both pipelines.The main tradeoff is explicit: vinext's static export stores full RSC artifacts alongside HTML, so total export size rises even though build time, shipped JS, shipped CSS, and file count improve. The native single-CSS landing output is 23,913,771 bytes across 266 files (644,530 JS bytes and 35,603 CSS bytes). With the CI-built Storybook included, the deployable single-CSS artifact is 32,040,909 bytes across 409 files.
Verification
bun run lintbunx tsc --noEmit -p apps/landing/tsconfig.jsonbunx vinext check(100%)DEVUP_SINGLE_CSS=1direct-output E2E: 128 passed404.html, and Storybook present