ci: limit runtime image builds to Docker changes and weekly validation (W1-4) - #476
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 del'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.pyverts.Les cas ciblés couvrent push, PR Docker/code/docs, dispatch, schedule,
échecs et annulations des jobs optionnels.
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=minseul 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 --paginateaprès sept jours.Conserver les durées et la somme des
size_in_bytescomme preuve d'acceptation.