ci: build on every PR - #470
Merged
Merged
Conversation
Typecheck and lint both pass on breakage that only the bundler sees. A stale ambient module declaration for a removed package typechecks clean, lints clean, passes the manifest and audit gates, and fails the build:
Error: [vite]: Rolldown failed to resolve import
That class of defect currently reaches Oxygen deploy, where a failed build serves HTML referencing assets that were never published.
The build needs no storefront credentials. Verified it succeeds with an empty environment and no .env present.
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.
Why
CI runs lint, typecheck, manifest drift, and the settings audit — but never builds. A broken build merges clean and fails at Oxygen deploy, where a partial upload serves HTML referencing assets that were never published (the blank-storefront failure mode from #469).
The gap this closes
Typecheck does not see bundler-level breakage. Realistic case: a dependency gets removed from
package.jsonbut its ambient module declaration is left behind inapp/types/.Measured against every gate currently in CI:
npm run biomenpm run typechecknpm run weaverse:manifest:checknpm run weaverse:auditnpm run buildTypeScript trusts the ambient declaration, so the module resolves at type level and never at bundle level. Same shape as a client-only module pulled into the worker bundle or a Vite plugin misconfiguration: clean types, broken artifact.
Credentials
None needed. Verified the build succeeds with an empty environment (
env -i) and no.envpresent, so this runs unauthenticated on PRs from forks.Cost
~30s on this machine. The step reuses the
npm ciand setup-node cache already in the job.