Add an optional Neo4j graph read model behind a default-off flag #40
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CodebaseQA CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| backend-test: | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ./apps/api | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
| # Only the linter is not a project dependency; everything the tests need | |
| # (pytest, pytest-asyncio, pytest-cov, httpx) is declared in requirements.txt | |
| # so a fresh clone can run the suite too. Pinned so an unrelated PR cannot | |
| # go red the day ruff ships a new rule. | |
| pip install ruff==0.16.2 | |
| - name: Lint with Ruff | |
| run: | | |
| ruff check src tests | |
| - name: Run Tests | |
| # `tests`, not `tests/unit tests/integration`: tests/test_parser.py sits at the | |
| # tests/ root and was silently excluded, so CI never built a single tree-sitter | |
| # parser and local runs (pyproject testpaths = ["tests"]) covered more than CI. | |
| run: | | |
| pytest tests --cov=src --cov-report=xml | |
| - name: Upload coverage reports | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| frontend-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v3 | |
| with: | |
| version: 10.28.2 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'pnpm' | |
| # --frozen-lockfile matches apps/web/vercel.json. With --no-frozen-lockfile CI | |
| # silently repaired lockfile drift that the Vercel build then rejected, so a PR | |
| # could go green and the production deploy fail on the same commit. | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Lint | |
| run: pnpm --filter web lint | |
| - name: Type Check | |
| run: pnpm --filter web type-check | |
| - name: Build | |
| run: pnpm --filter web build | |
| - name: Verify Compiled CSS | |
| run: pnpm web:verify-css | |
| - name: Run Tests | |
| run: pnpm --filter web test |