-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Conversation
Adds a CI quality gate that runs biome check (lint + format) and tsc --noEmit (typecheck via turbo) on every push to main and every pull request. Uses bun (the repo's package manager) instead of npm, matching the setup from release.yml. Closes pascalorg#147
claygeo
commented
Apr 2, 2026
CI is working as expected — it caught 7 pre-existing lint errors that have been accumulating on main without a quality gate. All are auto-fixable:
- 4x
useExhaustiveDependenciesinfloorplan-panel.tsx(missing React hook deps) - 1x
useExhaustiveDependenciesinindex.tsx - 2x
noUnusedImportsinfloorplan-panel.tsx - 1x
useImportTypeinexport-system.tsx - 2x
internalError/fsonCLAUDE.mdfiles (biome trying to lint markdown)
I can fix all of these in a follow-up commit here if you'd like, or they can be addressed separately. The CLAUDE.md errors would go away by adding "*.md" to biome's ignore list or by excluding the .claude/ directory.
Let me know which approach you prefer and I'll update the PR.
biome check includes format verification which fails on the current codebase due to pre-existing formatting differences. Use biome lint (code quality rules only) to avoid a massive formatting diff while still catching real issues like unused imports and missing deps. Format enforcement can be added later once the codebase is formatted consistently.
claygeo
commented
Apr 2, 2026
Updated — switched from bun run check (lint + format) to bun run lint (lint only).
The current codebase has pre-existing formatting differences that cause biome check to fail with 191 format violations. Fixing those would require a massive formatting-only PR that touches 189 files. Better to add lint enforcement first and tackle formatting separately.
bun run lint passes cleanly (1 warning, 0 errors). bun run check-types is the other step. CI should be green now.
The codebase currently has ~20 TypeScript errors introduced by the layout redesign (pascalorg#207) — missing exports, missing @types/node, etc. These pre-date the CI workflow and need to be fixed separately. Ship lint-only CI as the first quality gate. Typecheck is commented out with instructions to re-enable once the codebase passes tsc.
anton-pascal
commented
Jun 6, 2026
Drive-by note: @Aymericr shipped #369 an hour ago which added the lint+typecheck workflow and closed #147. Your PR was actually called out in the issue thread as the most polished approach — particularly the bun run lint vs bun run check call. Sorry it sat. Feel free to close if you'd like; happy to do it for you otherwise.
Summary
Closes #147
Adds a CI quality gate that catches lint errors and type issues before they hit main. Runs on every push to main and every pull request.
What it runs
bun run checkbiome.jsoncbun run check-typestsc --noEmitvia turbo across workspacesSetup
Matches the existing
release.ymlpatterns exactly:oven-sh/setup-bun@v2for bunactions/setup-node@v4with Node 22bun install --frozen-lockfilefor deterministic installsWhy not PR #192?
That PR uses
npm cibut this repo uses bun as its package manager (specified inpackage.json, withbun.lockcommitted). This PR uses bun throughout, matching the working setup inrelease.yml.Test plan
The workflow will run on this PR itself — check the Actions tab for results.