Skip to content

CI/CD

Three GitHub Actions workflows ship with openframe-core. All run on the production branch.


Workflow Overview

Workflow Trigger Job
app-test.yml push to any branch, PR Run pytest suite
python-build.yml push to production Build wheel + sdist, publish to PyPI
auto-docs.yml push to production, PR to dev/production Build + deploy MkDocs to GitHub Pages

Test Workflow

# .github/workflows/app-test.yml
- run: pip install -r .github/requirements/test.txt
- run: pytest tests/ -v

112 tests across 8 modules. All must pass before python-build.yml publishes.


Publish Workflow

Builds with hatch build, publishes with pypa/gh-action-pypi-publish. Uses skip-existing: true to handle re-runs gracefully — PyPI rejects duplicate file uploads with a 400; the flag converts this to a warning.

Warning

Switch to Trusted Publishing. The current workflow uses PYPI_API_TOKEN. Trusted Publishing removes the secret entirely and uses OIDC. Setup URL: https://pypi.org/manage/project/openframe-core/settings/publishing/


Docs Workflow

# .github/workflows/auto-docs.yml
- run: mkdocs build --strict   # on PRs — validates docs compile
- run: mkdocs gh-deploy --force  # on production push — deploys to gh-pages

--strict treats all MkDocs warnings as errors, catching broken links and missing pages before they reach production.