4.1 KiB
Pre-Deploy Validation
Contract
Running npm run check guarantees:
✅ Build succeeds - TypeScript compilation + Vite build passes with no errors
✅ Lint passes - ESLint checks pass
✅ Format passes - ESLint auto-fix applied
❌ Does NOT guarantee:
- Tests pass (tests are optional, run separately)
- Runtime behavior
- API connectivity
- WebSocket connection
Pre-Deploy Command
npm run check
What it runs:
npm run build- TypeScript compilation + Vite production buildnpm run lint- ESLint checksnpm run format- ESLint auto-fix
Individual Check Commands
Build Check
npm run build
What it does: tsc -b && vite build
Pass criteria: TypeScript compiles AND Vite builds with 0 errors
Fail criteria: Any TypeScript or build error
Lint Check
npm run lint
What it does: eslint .
Pass criteria: No ESLint errors
Fail criteria: Any ESLint error (warnings are OK)
Format Check
npm run format
What it does: eslint . --fix
Pass criteria: Auto-fixes applied, no remaining errors
Fail criteria: Errors that cannot be auto-fixed
Optional: Test Check
Tests are optional but recommended before deploy.
npm run test
What it does: vitest run - Runs all component tests
Pass criteria: All tests pass
Fail criteria: Any test fails
When to run tests:
- ✅ Before deploying to production
- ✅ After making UI changes
- ✅ After updating dependencies
- ⚠️ Optional for hotfixes (use judgment)
Pass/Fail Rules
✅ SAFE TO DEPLOY (Minimum)
All of the following must be true:
npm run buildexits with code 0npm run lintexits with code 0npm run formatexits with code 0
✅ SAFE TO DEPLOY (Recommended)
All minimum checks PLUS:
npm run testexits with code 0
❌ DO NOT DEPLOY
If any of the following are true:
npm run buildfails (TypeScript or Vite errors)npm run lintfails (ESLint errors)npm run formatfails (unfixable ESLint errors)npm run testfails (if you chose to run tests)
Current Issues (Must Fix Before Deploy)
⚠️ Build is currently failing:
src/App.dom.test.tsx:3:26 - error TS6133: 'waitFor' is declared but its value is never read
src/tabs/OverviewTab.dom.test.tsx:6:10 - error TS6133: 'tableNameTransactions' is declared but its value is never read
... and 9 more errors
Action required: Fix TypeScript errors before deploying
Full Pre-Deploy Checklist
# Minimum (required)
npm run check
# Recommended (includes tests)
npm run check && npm run test
# Full validation (includes coverage)
npm run check && npm run coverage
Quick Reference
| Command | Purpose | Time | Critical |
|---|---|---|---|
npm run build |
Compile + Build | ~15s | YES |
npm run lint |
ESLint check | ~5s | YES |
npm run format |
ESLint fix | ~5s | YES |
npm run test |
Run tests | ~10s | RECOMMENDED |
npm run check |
All checks | ~25s | YES |
Troubleshooting
Build fails
- Check TypeScript errors in output
- Fix type errors in code
- Ensure all imports are correct
- Check Vite build errors
Lint fails
- Check ESLint errors in output
- Fix code style issues
- Update ESLint config if needed
Format fails
- Some errors cannot be auto-fixed
- Manually fix remaining issues
- Re-run
npm run format
Tests fail
- Check test output for failures
- Fix failing tests
- Update snapshots if needed (
vitest -u)
Notes
- Tests are optional: But strongly recommended for production deploys
- Checks are mandatory: Build, lint, format must pass
- No shortcuts: Do not skip checks or deploy with failures
- Independent: This project's checks are independent of the backend
Related
- Backend pre-deploy:
../bytelyst-trading-bot-service/docs/pre-deploy.md - Deployment script:
deploy.ps1 - Test coverage:
npm run coverage