Centralised reusable GitHub Actions workflows for DAIR repositories.
This package is the CI/CD control layer for private development, public release, and downstream reuse.
- Applies consistent CI/CD checks across repositories.
- Enforces release-source and version rules.
- Automates private to public promotion.
- Supports stable downstream consumption and live internal development.
Downstream repositories call:
SETT-Centre-Data-and-AI/workflows/.github/workflows/central-orchestrator.yaml@release
This gives stable, tested behaviour.
Setup guide: Usage in Repos.
workflows and workflows_development call:
./.github/workflows/central-orchestrator.yaml
This means workflow changes are tested directly from the current branch.
- Caller workflow sends event context and repository inputs.
central-orchestrator.yamlresolves defaults and overrides throughconfig.yaml.- Route conditions are evaluated from event, repo, base branch, and head branch.
- Only required workflows run.
- Private: any ->
main: Runsbuild-and-test.yamlto run smoke tests and testing matrix - Private/Public:
main/incoming_from_private->release: Runsensure-release-source.yamlandpre-release-version-check.yamlto ensure PR comes frommainand version has been bumped
- Private:
main->release: Runsback-sync-release-to-main.yamland optionallysync-to-public.yaml(whensync-to-publicis enabled) to commit the release back to main (private), and sync to the public repo. - Public:
incoming_from_private->release: Runspublish-to-pypi.yamlwhenpublish-on-releaseis enabled.
- Sync from Public Repo: pulls a public branch into the private repo
- Publish to PyPI: publishes to PyPI
- central-orchestrator.yaml
- self-orchestrator.yaml
- config.yaml
- build-and-test.yaml
- ensure-release-source.yaml
- pre-release-version-check.yaml
- back-sync-release-to-main.yaml
- sync-to-public.yaml
- sync-from-public.yaml
- publish-to-pypi.yaml
flowchart TD
A[Downstream repository] -->|calls @release| D[central-orchestrator.yaml]
C[workflows or workflows_development] -->|calls local workflow| D
D --> E[config.yaml]
E --> F[Resolved config]
F --> G[Checks and routing]
G --> H[build-and-test]
G --> I[ensure-release-source]
G --> J[pre-release-version-check]
G --> K[back-sync-release-to-main]
G --> L[sync-to-public]
G --> M[publish-to-pypi]
This work is licensed under Creative Commons Attribution-NonCommercial 4.0 International License.
DAIR Workflows was developed by Cai Davis at University Hospital Southampton NHS Foundation Trust's Data and AI Research Unit (DAIR), part of the Southampton Emerging Therapies and Technology Centre.

