de88679f25
- Fail startup on unsafe or malformed production settings (scripts/validate_config.py), run it before migrations, and stop on a failed `aerich upgrade`. - Forward the context-budget, timeout and metrics settings through Compose; accept the historical TAVILIY_API_KEY spelling. - Build the image from uv.lock and yarn.lock in a multi-stage Dockerfile. - Add Gitea Actions CI: Ruff, unit tests, context evaluation, frontend tests, typecheck and build. - Update README and deployment/development docs to match the current stack. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
1.4 KiB
YAML
50 lines
1.4 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
|
|
- uses: actions/setup-node@v4.4.0
|
|
with:
|
|
node-version: '22.14.0'
|
|
cache: yarn
|
|
cache-dependency-path: raggr-frontend/yarn.lock
|
|
- 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
|