Skip to content

CI/CD with Github actions

when include_github_actions is set to "y", a .github directory is added with the following structure:

.github
├── workflows
├─── run-checks
│    └── action.yml
├─── setup-poetry-env
│    └── action.yml
├── on-merge-to-main.yml
├── on-pull-request.yml
└── on-release-main.yml

on-merge-to-main.yml and on-pull-request.yml are identical except for their trigger conditions; the first is run whenever a new commit is made to main (which should only happen through merge requests, hence the name), and the latter is run whenever a pull request is opened or updated. They call the action.yml files to set-up the environment, run the tests, and check the code formatting.

on-release-main.yml does all of the former whenever a new release is made on the main branch. In addition, on-release-main.yml also publishes the project to Pypi if publish_to is set to "pypi", and it builds and deploys the documentation if mkdocs is set to "y". To learn more about these features, see Publishing to PyPi and Documentation with MkDocs

Additionally, all workflows check for compatibility with multiple Python versions if tox is set to "y".

How to trigger a release?

To trigger a new release, navigate to your repository on GitHub, click Releases on the right, and then select Draft a new release. If you fail to find the button, you could also directly visit https://github.com/<username>/<repository-name>/releases/new.

Give your release a title, and add a new tag in the form *.*.* where the *'s are alphanumeric. To finish, press Publish release.