Skip to content

CI/CD Testing

This page summarizes QMCPy's current GitHub Actions CI layout.

Workflows

Workflow Trigger Runner / Python Main work
alltests.yml Feature-branch push ubuntu, Python 3.13
  • Non-Docker doctests
  • unittests
  • Coverage upload
alltests.yml push to develop or master; PR into develop or master; workflow_dispatch ubuntu, macos, windows; Python 3.13
  • Doctests
  • unittests
  • Coverage upload
  • Booktests
  • Linux-only UMBridge doctests when Docker is available
unittests.yml push to develop or master; PR into develop or master; workflow_dispatch ubuntu, macos, windows; Python 3.5 to 3.14
  • Install test and optional extras
  • Run unittests
docs.yml push to master ubuntu, Python 3.13
  • uml
  • copydocs
  • mkdocs gh-deploy --force
pep8.yml push to develop or master; workflow_dispatch ubuntu, Python 3.13
  • check_pep8
  • Open a badge-update pull request if badge assets change
pypi-stats.yml Weekly schedule; workflow_dispatch ubuntu, Python 3.13
  • Regenerate PyPI download statistics
  • Publish updated files

There is no nightly CI schedule.

Policy

  • Linux is the default feedback path and runs on every push.
  • macOS and Windows in alltests.yml are reserved for develop/master pushes, pull requests into those branches, and manual runs.
  • concurrency cancels superseded runs in both workflows; in alltests.yml, push and pull_request use separate groups so a PR does not inherit cancelled sibling checks from a same-SHA push.
  • alltests.yml pins Miniconda base Python to 3.13; unittests.yml still uses the base environment without explicitly passing matrix.python-version into setup-miniconda.
  • Booktests are skipped on feature-branch pushes and run only in the full sweep.
  • UMBridge doctests run only on Linux full sweeps with Docker available.
  • workflow_dispatch means manually triggered workflow.
  • tests.md: local Makefile targets and coverage commands.
  • booktests.md: notebook-test mechanics and developer commands.

When workflow files .github/workflows/*.yml change, update this page together with mkdocs.yml, README.md, and tests.md if applicable.