name: CI on: push: pull_request: jobs: backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.2.2 - uses: actions/setup-python@v5.6.0 with: python-version: '3.13.2' - name: Install pinned tooling run: python -m pip install uv==0.7.2 ruff==0.8.2 - name: Install locked backend and test dependencies run: | uv lock --check uv sync --frozen --extra test - name: Ruff run: ruff check . - name: Unit tests (no service credentials) env: OPENAI_API_KEY: synthetic-unit-test-key TAVILY_API_KEY: synthetic-unit-test-key run: uv run --frozen --extra test pytest tests/unit -v - name: Deterministic context evaluation run: uv run --frozen --extra test python -m scripts.evaluate_context frontend: runs-on: ubuntu-latest defaults: run: working-directory: raggr-frontend steps: - uses: actions/checkout@v4.2.2 # No `cache: yarn` here: setup-node requires yarn to already be on PATH # for that, and the Node it installs doesn't ship one. - uses: actions/setup-node@v4.4.0 with: node-version: '22.14.0' - name: Install Yarn (lockfile v1) run: npm install --global yarn@1.22.22 - name: Install locked frontend dependencies run: yarn install --frozen-lockfile - name: Renderer tests run: node --test tests/*.test.cjs - name: Typecheck run: yarn tsc --noEmit - name: Build run: yarn build