Chapitre 10 — CI/CD de tout l’écosystème#
Tableau récapitulatif de tous les workflows CI de l’écosystème.
Plan#
Vue d’ensemble#
| Dépôt | Workflows | Total |
|---|
ocarina | main_ci + dev_ci + unstable_python_full_build | 3 |
ocarina-example | main_ci + dev_ci + e2e | 3 |
ocarina-with-ai-example | ai_proof_ci + ai_proof_e2e | 2 |
igoristan | ci-pr + deploy | 2 |
ocarina-holy-book | deploy | 1 |
tests-workers | aucun (délégué à Vercel) | 0 |
+ ocarina/.github/actions/allure-history/action.yml.
Discipline transversale#
| Convention | Bénéfice |
|---|
workflow_dispatch toujours présent | Tous les workflows peuvent être lancés manuellement |
Cache .venv / node_modules | Tous les workflows cachent le venv ou les deps node |
| Stratégie “matrix” | Workflows dupliqués parallélisés pour tester la compatibilité avec plusieurs OS et plusieurs navigateurs web : ocarina (ubuntu+windows). Les autres : ubuntu seul (suffit). ocarina-with-ai-example : matrix Firefox+Chrome. |
fail-fast: false | Les workflows instanciés avec strategy: matrix ne se court-circuitent pas entre eux |
| Artifacts upload | Les tests e2e uploadent toutes les ressources qu’ils génèrent (.screenshots/, .ocarina_logs/, .reports/) |
if: always() | Les upload ne sont pas court-circuités en cas de fail de test e2e |
environment: pour gestion des secrets | OC (ocarina-example), github-pages (déploiements) |
concurrency: pages | Sécurise les race conditions |
defaults.run.shell: bash | Standardisation du shell cross-OS |
Léger en PR, lourd en manuel#
| Trigger | Charge |
|---|
| push/PR | Lint + typecheck + tests unitaires (rapide) |
workflow_dispatch (manuel) | e2e complet (gourmand) |
| Cron (mensuel) | unstable_python_full_build.yml sur Python 3.15-dev |