Skip to content

Add CI: backend tests + frontend build#144

Merged
pufit merged 3 commits into
mainfrom
pufit/add-ci
Jun 23, 2026
Merged

Add CI: backend tests + frontend build#144
pufit merged 3 commits into
mainfrom
pufit/add-ci

Conversation

@pufit

@pufit pufit commented Jun 23, 2026

Copy link
Copy Markdown
Member

What

Adds CI for the repository via GitHub Actions (.github/workflows/ci.yml). Runs on push/PR to main (plus manual workflow_dispatch), with concurrency cancellation and read-only permissions. Two parallel jobs:

  • backend-testsuv venv --python 3.13uv pip install -e ".[test]"pytest tests/ -v
  • frontend-buildnpm cinpm run build (tsc -b && vite build) in web/ on Node 22

It also declares a [project.optional-dependencies] test extra in pyproject.toml (pytest, pytest-asyncio). These test deps were previously undeclared, so a fresh uv pip install -e . produced an environment that couldn't run the suite.

Why Python 3.13 only

pyproject.toml declares requires-python = ">=3.12", but the pinned memu-py==1.4.0 actually requires >=3.13 — a 3.12 install fails as unsatisfiable. CI therefore targets 3.13 (which is also what the dev environment runs). Consider bumping requires-python to >=3.13 for accuracy (not done here to keep this PR scoped to CI).

Verification

Both pipelines were reproduced locally with the exact CI commands against a clean environment:

  • Backend (fresh 3.13 venv): 1298 passed, 2 skipped (~20s). Suite runs fully offline — no secrets or network.
  • Frontend (clean npm ci): build succeeds (only a non-fatal chunk-size warning).

Notes

  • npm run lint is intentionally not a gate (scope is tests + build). Easy to add as a step if desired.

Generated by Nerve

pufit added 3 commits June 23, 2026 16:15
GitHub Actions running pytest (Python 3.13) and the Vite frontend build
on push/PR to main. Declares a [test] extra in pyproject for pytest +
pytest-asyncio.
The blanket *.jsonl gitignore rule excluded tests/fixtures/codex/rollouts/
fixtures, so the codex source tests passed locally but failed on a clean
checkout (CI) with FileNotFoundError. Add a .gitignore negation so the
fixtures are tracked. Fixtures are fully synthetic (placeholder UUIDs/paths).
Silences the Node 20 deprecation warnings (checkout v5, setup-uv v6,
setup-node v5) and gives the uv cache a real invalidation key.
@pufit pufit merged commit 9687956 into main Jun 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant