Description
The CI pipeline (.github/workflows/ci.yml) runs build and test steps but does not run linting or type-checking, even though both scripts are defined in package.json:
Frontend package.json:
"lint": "eslint",
"typecheck": "tsc --noEmit"
Backend package.json:
"typecheck": "tsc --noEmit"
The CI workflow only runs:
- run: npm ci
- run: npm run build
- run: npm test
Impact
- TypeScript type errors are not caught in CI — only at build time if they happen to cause build failures
- ESLint violations (including potential bugs, unused variables, security issues) are never enforced
- Developers can merge code with type errors that
tsc --noEmit would catch but next build might not
- Code quality degrades over time without enforcement
Suggested Fix
Add linting and type-checking steps to the CI workflow:
# Frontend job
- name: Type check
working-directory: frontend
run: npm run typecheck
- name: Lint
working-directory: frontend
run: npm run lint
# Backend job
- name: Type check
working-directory: backend
run: npm run typecheck
File
.github/workflows/ci.yml
Description
The CI pipeline (
.github/workflows/ci.yml) runs build and test steps but does not run linting or type-checking, even though both scripts are defined inpackage.json:Frontend package.json:
Backend package.json:
The CI workflow only runs:
Impact
tsc --noEmitwould catch butnext buildmight notSuggested Fix
Add linting and type-checking steps to the CI workflow:
File
.github/workflows/ci.yml