bd4b8936e4
setup-node's `cache: yarn` needs yarn already on PATH, and the Node it installs does not ship one, so the frontend job failed at setup on every run. Install the lockfile's Yarn 1.22.22 explicitly instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
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
|