GitHub Actions workflows for continuous testing and automated releases.
Scope
- `ci.yml`: run `pytest` on push/PR to `main` across Python 3.10, 3.11, 3.12
- `publish.yml`: triggered by `v*` tags — test, build, publish to PyPI, create GitHub Release
- PyPI publish uses OIDC trusted publishing (no stored API token)
- GitHub Release automatically attaches `.whl` and `.tar.gz` artifacts
Acceptance criteria
GitHub Actions workflows for continuous testing and automated releases.
Scope
Acceptance criteria