Git Actions – Release Workflow Overview
Repo uses single consolidated workflow .Git/workflows/release-and-docs.yml to automate build docs and release; the previous/common multi‑workflow setup depreciated to avoid race/concurrency issues and artefact hand‑off problems.
What Gets Released
Included files
Release bundle constructed in 2 ways
1. PEP 517 build system – creates Python package (.tar.gz and .whl) inside dist/
contains only package code declared in pyproject.toml and MANIFEST.in
2. Release bundle – convenience archive (release.zip) built by release.sh, containing
- Python distribution files dist/*
- README.md for end‑user ref
- .env.example sample environment config
- deployment helpers PowerShell and SQL scripts used in LA setup
- optional Windows .exe built locally with PyInstaller
Excluded files
During packaging and bundling process explicitly exclude
- development caches __pycache__/, .pytest_cache/, .coverage/
- IDE files .vscode/, .idea/
- build directories build/, dist/, old *.egg-info
- test artefacts not required in distribution
Full list of include/exclude rules maintained in
pyproject.tomlandMANIFEST.in
Update those to change Python package contents or adjustrelease.shto change wider release bundle
Build, docs, and assets flow (release-and-docs.yml)
Runs whenever code is pushed to main or a tagged release (vX.Y.Z) is created (or manually)
triggers
- tag push pattern
v*egv0.2.1runs full release pipeline - whenever push to
mainruns build and docs, no release - manual dispatch optional from actions tab
What it always does
- prep environment: checkout repo, set up Python, cache dependencies
- build Python distributions: sdist (
.tar.gz) and wheel (.whl) intodist/ - run
twine checkto verify package metadata - upload artefacts for validation
- build and deploy MkDocs documentation to Git Pages
Optional and conditional steps
- Windows exe build: if enabled, uses PyInstaller to create
.exeand uploads it - Release bundling: creates
release.zipincludingdist/*,README.md,.env.example, and helper scripts - Tag push: if run was triggered by tag, workflow creates or updates Git Release and attaches artefacts (
dist/*,release.zip, optional.exe) - Main push only: workflow completes build and docs deployment, but no Git Release created
The flow below shows how jobs and conditionals are sequenced:
where to change things
- package contents ->
pyproject.toml,MANIFEST.in - bundle contents ->
release.shand bundling job in workflow - triggers and job order ->
.Git/workflows/release-and-docs.yml - secrets and credentials -> repo or org settings secrets and variables
last verified 20/08/2025 aligned with single‑workflow setup