| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| web: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: npm | |
| - run: npm ci | |
| - run: npm run lint | |
| - run: npx tsc --noEmit | |
| - run: npm run build | |
| python: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| cache: pip | |
| cache-dependency-path: ml/requirements-inference.txt | |
| - run: pip install -r ml/requirements-inference.txt pytest httpx scikit-learn pandas | |
| # Model weights are not committed; tests marked needs_model auto-skip. | |
| - run: python -m pytest tests/ -v | |