Spaces:
Running
Running
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| unified-api: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install shared and API packages | |
| run: python -m pip install -e ".[dev]" -e "./shared" -e "./interpreter[dev]" | |
| - name: Scriber and combined-app tests | |
| run: pytest | |
| - name: Shared normalization characterization | |
| run: python -m pytest shared/tests | |
| - name: Regenerate term artifacts without drift | |
| run: python scripts/build_term_artifacts.py && git diff --exit-code -- data/medical_lexicon.json interpreter/app/glossary/data/seed_glossary.csv | |
| - name: Enforce serving/training import boundary | |
| run: if rg -l 'from gec|import gec' scribe/carepath/; then exit 1; fi | |
| - name: Scriber smoke test (mock ASR + offline LLM) | |
| run: python scripts/smoke_backend.py | |
| training-governance: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install CPU-only training proof dependencies | |
| run: python -m pip install -e ".[dev]" -e "./shared" | |
| - name: Test training governance and export smoke | |
| run: python -m pytest scribe/training/tests | |
| - name: Verify the committed frozen baseline report | |
| run: python scribe/training/scripts/baseline_report.py | |
| interpreter: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install shared and interpreter | |
| run: python -m pip install -e "./shared" -e "./interpreter[dev]" | |
| - name: Lint interpreter | |
| working-directory: interpreter | |
| run: ruff check . | |
| - name: Test interpreter | |
| working-directory: interpreter | |
| run: pytest | |
| - name: Eval regression | |
| run: python interpreter/eval/run_eval.py --set interpreter/eval/fixtures/eval_starter.tsv --providers mock | |
| frontend: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: interpreter/frontend/package-lock.json | |
| - name: Install frontend | |
| working-directory: interpreter/frontend | |
| run: npm ci | |
| - name: Lint frontend | |
| working-directory: interpreter/frontend | |
| run: npm run lint | |
| - name: Test frontend | |
| working-directory: interpreter/frontend | |
| run: npm test | |
| - name: Build frontend | |
| working-directory: interpreter/frontend | |
| run: npm run build | |
| e2e: | |
| runs-on: ubuntu-latest | |
| needs: [interpreter, frontend] | |
| env: | |
| PROVIDER_MODE: mock | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: interpreter/frontend/package-lock.json | |
| - name: Install shared and interpreter | |
| run: python -m pip install -e "./shared" -e "./interpreter[dev]" | |
| - name: Install frontend | |
| working-directory: interpreter/frontend | |
| run: npm ci | |
| - name: Install Playwright browser | |
| working-directory: interpreter/frontend | |
| run: npx playwright install --with-deps chromium | |
| - name: Run Playwright e2e | |
| working-directory: interpreter/frontend | |
| run: npx playwright test | |
| site: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: scribe/frontend/package-lock.json | |
| - name: Install demo site | |
| working-directory: scribe/frontend | |
| run: npm ci | |
| - name: Lint demo site | |
| working-directory: scribe/frontend | |
| run: npm run lint | |
| - name: Test demo site | |
| working-directory: scribe/frontend | |
| run: npm test | |
| - name: Test Vercel environment validation | |
| working-directory: scribe/frontend | |
| run: npm run test:deploy-env | |
| - name: Build demo site | |
| working-directory: scribe/frontend | |
| run: npm run build | |
| - name: Install Playwright browser | |
| working-directory: scribe/frontend | |
| run: npx playwright install --with-deps chromium | |
| - name: Run demo site e2e | |
| working-directory: scribe/frontend | |
| run: npm run e2e | |
| - name: Rebuild production demo site | |
| working-directory: scribe/frontend | |
| run: npm run build | |
| - name: Audit demo site | |
| working-directory: scribe/frontend | |
| run: npm audit | |
| - name: Run Lighthouse gates | |
| working-directory: scribe/frontend | |
| run: npm run lighthouse | |