Skip to content

rename: migrate pydata → tallyman #1

rename: migrate pydata → tallyman

rename: migrate pydata → tallyman #1

Workflow file for this run

name: tests
on:
push:
branches: [main, "spike/**"]
pull_request:
branches: [main]
# CI runs three sequential jobs: lint → fast tests → integration tests.
#
# - The React SPA (packages/app/) IS built in the fast job: the SPA-serving
# tests assert the real built index.html (#root div), so dist/ must exist
# or create_app's catch-all returns 503. The embed bundle (packages/embed/)
# is still NOT built — nothing serves it under test.
# - Integration tests spawn the real buckaroo Tornado subprocess via
# tallyman's BuckarooManager. buckaroo==0.14.6 is pinned in
# pyproject.toml as a normal PyPI dep, so plain `uv sync` is enough.
jobs:
lint:
name: ruff
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: ruff check
# uvx runs the latest ruff without polluting the project venv;
# matches the local pre-push hook in ~/.claude/settings.json.
run: uvx ruff check
fast:
name: fast suite (excludes integration)
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v3
with:
enable-cache: true
# The SPA-serving tests hit create_app's catch-all, which reads
# packages/app/dist/index.html. Build it here (pnpm 9 matches the
# lockfileVersion 9.0) so those routes return the page, not a 503.
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
cache-dependency-path: packages/app/pnpm-lock.yaml
- name: build React SPA
run: pnpm -C packages/app install --frozen-lockfile && pnpm -C packages/app build
- name: vitest (React unit)
run: pnpm -C packages/app test
- name: sync deps
run: uv sync
- name: pytest (fast)
# pyproject.toml's addopts already excludes `-m integration`;
# being explicit here so the job name matches the behaviour.
run: uv run pytest -m "not integration"
integration:
name: integration suite
runs-on: ubuntu-latest
needs: fast
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- run: uv sync
- run: uv run pytest -m integration