Continuous integration¶
Three GitHub Actions workflows under .github/workflows/.
Workflow |
Trigger |
Purpose |
|---|---|---|
|
push / PR to |
pytest on 3 OS × 3 Python versions + |
|
push / PR to |
Build Sphinx docs; deploy to GitHub Pages on push to |
|
push of |
Tests gate, build sdist + wheel, attach to GitHub Release |
tests.yml¶
OS:
ubuntu-latest,macos-latest,windows-latestPython:
3.11,3.12,3.13Installs the package with
devandclimateextras (the climate stack is needed for any test that touches the source adapters).Coverage XML uploaded from Ubuntu / Python 3.12.
The lint job (ruff check .) runs as continue-on-error: true while the
package is in early scaffold state. Flip the flag once the
implementation modules land.
docs.yml¶
Builds the Sphinx site on every PR (catches doc regressions) and deploys
to GitHub Pages on every push to main.
One-time repo settings¶
Settings → Pages → Source: “GitHub Actions”
Settings → Actions → General → Workflow permissions: “Read and write permissions”
release.yml¶
Tagging vX.Y.Z triggers: tests → python -m build → GitHub Release with
sdist + wheel attached. The Zenodo webhook then mints a DOI from
CITATION.cff.
Branch protection¶
main should require:
testsmatrix jobs to pass.docsbuild job to pass.One approving review.