10.01 — Workflow summary matrix#

Synthetic overview of every ecosystem workflow.

Recap#

RepoWorkflowTriggerOSStackEffectDetail
ocarinamain_ci.ymlpush/PR main, dispatchubuntu + windows × py 3.14 (option 3.15-dev)venv cache, make install-on-cimake check-coding-style + make test + Allure history + Pages deploy02-ocarina-workflows.md
ocarinadev_ci.ymlpush dev/feature/fix, PR dev, dispatchubuntu × py 3.14venv cachecheck-coding-style + test + coverage summary (non-gating)02-ocarina-workflows.md
ocarinaunstable_python_full_build.ymlcron (monthly), dispatchubuntu + windows × py 3.15-devPIP_ONLY_BINARY=":all:"full build on pre-release Python02-ocarina-workflows.md
ocarina-examplemain_ci.ymlpush/PR main, dispatchubuntu + windows × py 3.14venv cachecheck-coding-style03-example-workflows.md
ocarina-exampledev_ci.ymlpush dev, dispatchubuntu × py 3.14venv cachecheck-coding-style03-example-workflows.md
ocarina-examplee2e.ymldispatch (env OC)ubuntu + service redis:8.x + Firefox + geckodriver 0.35.0venv cachefull run, upload traces03-example-workflows.md
ocarina-with-ai-exampleai_proof_ci.ymlpush main, PR, dispatchubuntu × py 3.14venv cacheruff format check + ruff check + mypy04-ai-workflows.md
ocarina-with-ai-exampleai_proof_e2e.ymldispatchubuntu × firefox+chrome matrixvenv cache, geckodriver 0.36.0 / auto-matched chromedriverHeroku dyno warm-up, run, sed-filter ChromeDriver stacktraces, upload04-ai-workflows.md
igoristanci-pr.ymlPR **, dispatchubuntu × node 24 + pnpm 11wireitformat check + lint + typecheck (parallelized)05-igoristan-workflows.md
igoristandeploy.ymlpush main, dispatchubuntu × node 24 + pnpm 11concurrency group pagespnpm install --frozen-lockfile + pnpm build + upload Pages05-igoristan-workflows.md
ocarina-holy-bookdeploy.ymlpush main, PR, dispatchubuntu × node 24 + pnpm 11TZ=Europe/Paris, concurrency group pagespnpm install + pnpm build + upload Pages06-holy-book-workflow.md
tests-workersnone —  — Vercelvercel deploy07-tests-workers-vercel.md

Composite action#

ActionLocationUse
allure-historyocarina/.github/actions/allure-history/action.ymlComposite: Bun + Allure 3.9.0 + restore/save history.jsonl on a dedicated branch

Patterns#

PR workflows (light, auto)#

ocarina/main_ci.yml                                       # python 3.14
ocarina/dev_ci.yml
ocarina-example/main_ci.yml
ocarina-example/dev_ci.yml
ocarina-with-ai-example/ai_proof_ci.yml
igoristan/ci-pr.yml

All run fast.

e2e workflows (heavy, manual)#

ocarina-example/e2e.yml                                   # Redis + Firefox
ocarina-with-ai-example/ai_proof_e2e.yml                  # Firefox + Chrome (matrix)

Manual (workflow_dispatch). Spin up a Redis service or warm up Heroku. Download drivers. Launch browsers. Upload traces.

deploy workflows (production)#

igoristan/deploy.yml                                      # Pages
ocarina-holy-book/deploy.yml                              # Pages

On push to main, deploys to GitHub Pages.

Monthly workflows#

ocarina/unstable_python_full_build.yml                    # 1st of month, 03:00 UTC

Monthly cron on Python 3.15-dev. Keeps Ocarina ready for the next Python release.

Manual release process#

No workflow runs twine upload (PyPI) automatically. ocarina/pyproject.toml#dependency-groups.dev includes twine>=6.2.0, but the release process is manual.

Auto publishingManual publishing
Risk of accidental releaseControl
Risk of releasing breaking changes without reviewReview possible
PyPI quotaMore peaceful
Token monitoring (theft risk)Ephemeral tokens