10.01 — Matrice récapitulative des workflows#

Vue d’ensemble synthétique de tous les workflows de l’écosystème.

Récap.#

DépôtWorkflowTriggerOSStackEffetDétail
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 + récap couverture (non bloquant)02-ocarina-workflows.md
ocarinaunstable_python_full_build.ymlcron (mensuel), dispatchubuntu + windows × py 3.15-devPIP_ONLY_BINARY=":all:"full build sur Python pré-release02-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 cacherun complet, 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 × matrice firefox+chromevenv cache, geckodriver 0.36.0 / chromedriver auto-matchéwarm-up Heroku dyno, run, filtrage sed des stacktraces ChromeDriver, upload04-ai-workflows.md
igoristanci-pr.ymlPR **, dispatchubuntu × node 24 + pnpm 11wireitformat check + lint + typecheck (parallélisés)05-igoristan-workflows.md
igoristandeploy.ymlpush main, dispatchubuntu × node 24 + pnpm 11concurrency group pagespnpm install --frozen-lockfilepnpm build + upload Pages05-igoristan-workflows.md
ocarina-holy-bookdeploy.ymlpush main, PR, dispatchubuntu × node 24 + pnpm 11TZ=Europe/Paris, concurrency group pagespnpm installpnpm build + upload Pages06-holy-book-workflow.md
tests-workersaucun —  — Vercelvercel deploy07-tests-workers-vercel.md

Action composite#

ActionLocalisationUsage
allure-historyocarina/.github/actions/allure-history/action.ymlComposite : Bun + Allure 3.9.0 + restore/save history.jsonl sur branche dédiée

Patterns#

Workflows PR (légers, 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

Tous tournent rapidement.

Workflows e2e (gourmands, manuels)#

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

Manuels (workflow_dispatch). Démarrent service Redis ou warm-up Heroku. Téléchargent les drivers. Lancent les navigateurs web. Uploadent traces.

Workflows deploy (production)#

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

Sur push main → GitHub Pages.

Workflows mensuels#

ocarina/unstable_python_full_build.yml                    # 1er du mois, 03:00 UTC

Cron mensuel sur Python 3.15-dev. Garde Ocarina prêt pour la prochaine release Python.

Release process manuel#

Aucun workflow ne fait twine upload (PyPI) automatiquement.
ocarina/pyproject.toml#dependency-groups.dev contient twine>=6.2.0 mais le release process est encore manuel et fait par l’auteur.

Publishing autoPublishing manuel
Risque de release accidentelContrôle
Risque de release de breaking changes sans reviewReview possible
Quota PyPIPlus paisible
Surveiller ses tokens (risque de vol de token)Tokens éphémères