Skip to content

ci: limit runtime image builds to Docker changes and weekly validation (W1-4) - #476

Merged
cdeust merged 3 commits into
mainfrom
ci/green-conditional-docker
Sep 6, 2026
Merged

cdeust merged 3 commits into
mainfrom
ci/green-conditional-docker

Conversation

@cdeust

@cdeust cdeust commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Symptôme

W1-4 / F13 : runtime et devcontainer étaient construits sur chaque PR sans
être exécutés. PR empilée sur #475.

Cause racine

Ces deux validations de construction partageaient le déclenchement des tests
courants ; leur cache exportait aussi les couches intermédiaires.

Changement

Runtime/devcontainer sont requis pour un changement Docker, le lancement
manuel et le rendez-vous hebdomadaire (lundi 04:17 UTC, fenêtre existante de
fuzz réutilisée). Le run hebdomadaire exécute ces builds et le smoke Docker,
avec classification/lint/agrégateur ; il n'ajoute pas une matrice Python.
Le smoke conserve son prédicat existant. L'agrégateur vérifie ces raisons de skip.

Les deux exports BuildKit passent à mode=min, qui conserve les couches de
l'image finale plutôt que toutes les étapes intermédiaires, conformément à la
documentation Docker.

Preuve

Gates locaux ordonnés verts : Ruff 1 416 fichiers, craftsmanship, Pyright zéro
diagnostic ; couche scripts 830 passed, 5 skipped, 292 subtests ; suite
complète 7 577 passed, 221 skipped, 292 subtests en 147,15 s.
Les skips PostgreSQL locaux sont explicites (localhost:1 indisponible). Charge initiale 2,19 / 10 cœurs,
66 GiB disponibles. Actionlint et scripts/check_ci_gate_complete.py verts.
Les cas ciblés couvrent push, PR Docker/code/docs, dispatch, schedule,
échecs et annulations des jobs optionnels.

uv sync --locked --no-default-groups --extra dev --extra sqlite --group lint
.venv/bin/ruff check
.venv/bin/ruff format --check
.venv/bin/python scripts/check_craftsmanship.py
uv sync --locked --no-default-groups --extra dev --extra postgresql --extra sqlite --extra codebase --extra otel --group typecheck --group lint
.venv/bin/python -m pyright mcp_server/
export CORTEX_TEST_DATABASE_URL=postgresql://localhost:1/cortex_green_isolated
export CORTEX_MEMORY_STORE_BACKEND=sqlite DATABASE_URL=
export HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 CORTEX_RERANKER_OFFLINE=1
.venv/bin/python -m pytest tests_py/scripts/ -q --tb=short
.venv/bin/python -m pytest -q --tb=short

Log : /private/tmp/cortex-green-w1-4-gates.log.
Inventaire avant du 2026-09-06 : 182 caches, 12 529 799 262 octets, relevés
par gh api repos/cdeust/Cortex/actions/caches --paginate.

L'acceptation PR sans Docker est prouvée par le run 34037578794, entièrement vert : runtime/devcontainer ignorés, smoke exécuté avec succès. Le vrai déclenchement
hebdomadaire et la taille des caches après une semaine nécessitent la fusion
par le propriétaire puis l'observation ; ils restent explicitement en attente.

Conformité

Trois fichiers, aucune baseline ajoutée. Pas de modification des couches
mémoire. Données de test isolées et modèles hors ligne. Aucun cache existant
supprimé. Pas de fusion, d'issue, ni d'opération de production.

Candidats issues

Le seuil total de cache dépend aussi des caches HF/pip et des autres workflows.
mode=min seul ne prouve pas un total inférieur à 10 Go après une semaine.

Runbook

Après fusion décidée par le propriétaire, vérifier le run planifié puis relever
gh api repos/cdeust/Cortex/actions/caches --paginate après sept jours.
Conserver les durées et la somme des size_in_bytes comme preuve d'acceptation.

@cdeust
cdeust changed the base branch from ci/green-single-pytest to main September 6, 2026 21:52
@cdeust
cdeust merged commit 2161cf7 into main Sep 6, 2026
28 checks passed
@cdeust
cdeust deleted the ci/green-conditional-docker branch September 8, 2026 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant