180 lines
4.1 KiB
Markdown
180 lines
4.1 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
npm run check
|
|
```
|
|
|
|
**What it runs**:
|
|
1. `npm run build` - TypeScript compilation + Vite production build
|
|
2. `npm run lint` - ESLint checks
|
|
3. `npm run format` - ESLint auto-fix
|
|
|
|
---
|
|
|
|
## Individual Check Commands
|
|
|
|
### Build Check
|
|
```bash
|
|
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
|
|
```bash
|
|
npm run lint
|
|
```
|
|
**What it does**: `eslint .`
|
|
**Pass criteria**: No ESLint errors
|
|
**Fail criteria**: Any ESLint error (warnings are OK)
|
|
|
|
### Format Check
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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 build` exits with code 0
|
|
- `npm run lint` exits with code 0
|
|
- `npm run format` exits with code 0
|
|
|
|
### ✅ SAFE TO DEPLOY (Recommended)
|
|
All minimum checks PLUS:
|
|
- `npm run test` exits with code 0
|
|
|
|
### ❌ DO NOT DEPLOY
|
|
If any of the following are true:
|
|
- `npm run build` fails (TypeScript or Vite errors)
|
|
- `npm run lint` fails (ESLint errors)
|
|
- `npm run format` fails (unfixable ESLint errors)
|
|
- `npm run test` fails (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
|
|
|
|
```bash
|
|
# 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`
|