| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| python: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v4 | |
| - name: Install dependencies | |
| run: uv sync --dev | |
| - name: Lint (ruff) | |
| run: uv run ruff check services/ tests/ | |
| - name: Run tests | |
| run: uv run pytest tests/ -v | |
| frontend: | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: services/frontend | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: npm | |
| cache-dependency-path: services/frontend/package-lock.json | |
| - run: npm ci | |
| - name: Lint (ESLint) | |
| run: npm run lint | |
| - name: TypeScript check | |
| run: npx tsc --noEmit | |
| - name: Run tests | |
| run: npm test | |