CI/CD examples to test and deploy python packages from Github¶
Python project to showcase how to hook Github with:
- Read the Docs
- Travis CI
- CodeCov
- Coveralls
- PyPI
- Anaconda
- Github Pages
- Github Releases
- Zenodo
See setup.cfg to configure:
- package description (name, author, url, files…).
- PyPI deploy settings.
- Pytest options.
- Coverage report settings.
- Linter settings.
See tox.ini to configure:
- module tests from
tests/
folder (with pytest). - module coverage (from pytest output).
- documentation build from
docs/
folder (with sphinx, autodoc and napoleon). - documentation tests from
docs/*.rst
files and docstrings infoo
module. - linter python files syntax (with flake8).
See meta.yaml to configure Anaconda recipe.
See .readthedocs.yml to configure Read the Docs deployment.
See .travis.yml to configure CI tests and deployments to:
See .zenodo.json to configure Zenodo deployment, to get a DOI for each Github release.
(Note: in this test case, we hook our release with Zenodo sandbox interface to avoid dummy publications, therefore the DOI badge is not valid but the record can be found here).
Sphinx autobuild (tip)¶
Install:
$ pip install sphinx-autobuild
Start autobuild (with live reload):
$ cd docs ; make livehtml
Doctest in the documentation¶
>>> foo('dummy')
'foo'
Content¶
Dummy foo module.