Skip to content

ci: les caches pip de setup-python pesent 1,5 Go x versions x branches (~7,9 Go) et saturent le quota Actions que #18186 vient de liberer #19658

Description

@jsboige

Titre : ci: les caches pip de setup-python pèsent 1,5 Go × versions × branches (~7,9 Go) et saturent le quota Actions que #18186 vient de libérer

Labels : ci

Sans parent : extension mesurée du critère 2 de #18185 (délivré côté lakes par #18186) — nouvelle famille de caches, même quota Actions.

Constat (mesuré le 2026-10-07)

gh api repos/jsboige/CoursIA/actions/caches : 20 caches, 10 464 Mo au total, quota 10 Go — saturé. L'éviction LRU frappe donc à nouveau toutes les familles : mesuré le 06/10 22:31Z, la jambe ci de lean-asymmetric-information.yml (run main 37540824088) prend Cache not found sur lake-asymmetric_information_lean-Linux-72e51dc… avec un lakefile inchangé depuis ≥ 28/09 — le scenario exact que #18186 devait éliminer, revenu par une autre porte.

La place libérée par #18183 (overlays CodeQL bornés) et #18186 (oléans Mathlib sortis des lakes, 2,4 Go → 0,7 Go par cache) est consommée par :

Clé (tronquée) Taille
setup-python-…-python-3.9.25-pip-f26623… 1 542 Mo
setup-python-…-python-3.9.25-pip-f26623… (2e entrée, scope branche) 1 542 Mo
setup-python-…-python-3.12.14-pip-df2f91… 1 542 Mo
setup-python-…-python-3.12.14-pip-df2f91… (2e entrée) 1 542 Mo
setup-python-…-python-3.11.16-pip-89a05b… 1 542 Mo
setup-python-…-python-3.9.25-pip-f26623… (3e entrée, 130 Mo) 130 Mo

Soit ~7,9 Go à elles seules. Un cache pip de 1,5 Go est le poids d'un cache de téléchargement rempli de wheels lourdes (torch, CUDA-adjacent) — pas d'un requirements.txt ordinaire.

Sources

9 workflows posent cache: pip. Les entrées 3.9 viennent de ict-tests.yml:418 et ict-tests-profile.yml:89 (cache-dependency-path: MyIA.AI.Notebooks/IIT/ICT-Series/pyproject.toml pour le premier) ; ml-tests.yml:77 couvre les versions 3.11/3.12. Les duplications par scope de branche sont le comportement d'actions/cache (une entrée par branche qui sauvegarde) : chaque PR d'une lane qui fait tourner ces workflows fabrique sa copie de 1,5 Go.

Pistes (à trancher avant PR)

  1. Scoper le hash : cache-dependency-path déjà présent côté ICT — vérifier pourquoi le cache atteint 1,5 Go (le contenu est ~/.cache/pip, le téléchargement lui-même, pas les requirements : le hash ne borne pas la taille).
  2. Bourrer moins le cache : les workflows à wheels lourdes (torch) gagneraient à ne PAS cacher pip (le téléchargement depuis PyPI est rapide et CDN-servi) — le cache coûte plus en éviction qu'il rapporte en temps.
  3. Borner le nombre : même famille d'organe que l'éviction fix(ci,#16088): evict superseded CodeQL overlays, sweep on every push to main #18183 (une garde qui compte les entrées par famille et alerte/évince).

Critères de sortie

Voir #18185 (délivré côté lakes), #18186 (le fix lakes), #18183 (l'organe d'éviction à imiter), #16088.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions