Continuous integration
- readthedocs will handle docs building.
- Jenkins with Flatiron cluster for any tests requiring GPUs or more time/resources than can be obtained through Github actions.
- Github actions for everything else (see here) for resources):
- use
matrixto test on multiple python versions and OSs. pytest tests/, see here- that all notebooks can run (only done on github actions if using
.ipynbfiles, but done by readthedocs for mkdocs-gallery)- for notebooks that take too long to run on runners, use papermill to parametrize them to reduce runtime
- running linters with
tox - generating test coverage report:
coveralls. any PR must maintain or increase coverage in order to be merged. - use alls-green or similar ot check that all tests ran successfully (so only have a single check for branch protection rule)
- think about how frequently to run tests. one good possibility: weekly, manually, and on every PR:
on: workflow_dispatch: schedule: - cron: 0 0 * * 0 # weekly pull_request: branches: - main - development - trigger the connect.yml github action for debuging, it will allow you to ssh connect to the runner
- deploy to
pypion release (test usingtest.pypi.org, test installation and tests run, then deploy)