diff --git a/05_activity_log/2026-08-03.md b/05_activity_log/2026-08-03.md index 147d91c..caedcd5 100644 --- a/05_activity_log/2026-08-03.md +++ b/05_activity_log/2026-08-03.md @@ -436,3 +436,41 @@ zéro gate ajouté (#5). **Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP**. Aucune commande touchant au VPS (#8) · aucun `git clean` . + +--- + +## Session `20260803_050654` · doc DevOps — `ci/README.md` complété : second workflow `mobile-build.yml` + +**Sweep de vérité d'abord (aucune dérive trouvée sur les axes usuels).** Balayage +docstring-vs-CODE / README-vs-CODE des **20** générateurs (`*_gen.py` + `lib/generator.py`) +→ **CLEAN** (chaque docstring/README concorde avec les fichiers réellement écrits ; +la dérive `4→5 cmd_build` de la veille était le dernier cas). Ancres roadmap de +`acceptance_matrix.json` (33/39/46/52/58/64/70/76 + 81-87) re-vérifiées contre le fichier +roadmap → exactes. Câblage `gate.needs` (30 entrées) == miroir `run_ci.sh` → concordant. +Chiffres du daily report re-dérivés d'artefacts : `regression_run.json.totals` **569/569 · +0/0/0**, `quality_report.json` **PASS · 22 modules**, `acceptance_matrix.json` **15/15 +in_repo** → tous exacts. + +**Gap réel corrigé (complétude doc, classe `prose-facts-vs-numeric-drift`).** Depuis +l'ajout de `.gitea/workflows/mobile-build.yml` (commit `af84b21`), le dépôt possède +**deux** workflows Gitea Actions, mais le livrable CI/CD `ci/README.md` § 1 s'ouvrait sur +« Workflow : `ci.yml` » et ne mentionnait **jamais** le second — alors que `mobile-build.yml` +lui, pointe vers `ci/README.md` (« même runner · voir ci/README.md »). Référence à sens +unique → doc CI/CD incomplète pour un auditeur du dépôt. + +**Correctif.** Nouvelle sous-section § 1 « Second workflow Gitea Actions — `mobile-build.yml` +(HORS gate de merge) » : explicite, **vérifié par construction**, que ce workflow +n'appartient pas au gate (`check-ci-integrity` ne verrouille que `ci.yml` via sa variable +`CI=` ; aucun job dans `gate.needs` ; `run_ci.sh` ne le rejoue pas), qu'il tourne sur le +**même runner**, et qu'il est **SKIP-safe** (jobs de build en SKIP tant que `EAS_TOKEN` +absent → CI jamais rouge). Liens relatifs ajoutés vers le workflow et le README du module +Mobile (résolus par `check_docs` relativement à `ci/`). + +**Sûreté du changement.** Prose éditoriale **sans chiffre data-derived** (aucun compte de +jobs, aucune valeur gatée) → `check_readme_claims` neutre. Aucun terme interdit (#2 Gitea +only respecté) · aucun `out/*.json` touché → `check_artifacts` neutre · aucun nouveau +`ci/*.sh` ni assertion → `check_ci_integrity`/#5 neutres. Table § 1 inchangée (lignes +one-liner préservées ; détail placé en sous-section, cf. discipline `ci-readme` du dépôt). + +**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (dont `check-docs` liens +OK · `check-readme-claims` vert). Aucune commande VPS (#8) · aucun `git clean` . diff --git a/ci/README.md b/ci/README.md index 86639ae..7c3be53 100644 --- a/ci/README.md +++ b/ci/README.md @@ -26,6 +26,21 @@ et manuellement (`workflow_dispatch`). Jobs statiques (+ une suite `unittest` pa Aucune dépendance réseau/marketplace hors `actions/checkout`. Tout tourne avec `bash` + `git` + `python3` (déjà présents sur un runner standard). +### Second workflow Gitea Actions — `mobile-build.yml` (HORS gate de merge) + +Le dépôt versionne un **second** workflow Gitea Actions, +[`.gitea/workflows/mobile-build.yml`](../.gitea/workflows/mobile-build.yml) +(livrable Mobile · roadmap Sprint 5 · CI/CD mobile EAS), qui **n'appartient pas +au gate de merge** décrit ci-dessus. C'est volontaire et vérifié par construction : +`check-ci-integrity` ne verrouille **que** `ci.yml` (variable `CI=` du script), et +**aucun** de ses jobs n'est câblé dans `gate.needs` — il ne conditionne donc aucun +merge et `run_ci.sh` ne le rejoue pas (hors `gate.needs`). Il tourne sur le **même +runner** que `ci.yml` et reste **SKIP-safe** : tant que le secret `EAS_TOKEN` n'est +pas fourni par Michel, ses jobs de build (`eas build`/`eas submit`) sont en SKIP — +il ne rend **jamais** le CI rouge (`preflight` reste vert et rapporte les secrets +attendus). Périmètre complet (#8 · exécution serveur hors repo), profils EAS et +variables `a_confirmer` : [`README` du module Mobile](../05_deliverables_mvp/mobile/app_config/README.md). + ### Rejouer le gate EN LOCAL — `run_ci.sh` (racine du dépôt) Avant de committer, reproduire l'intégralité du gate de merge en une commande :