Skip to content

CI runners: controles A2/A3 positif/negatif seed_action_cache sur log de job reel (image reconstruite) #16654

Description

@jsboige

Contexte

Fille de #14853 (fermée CLOSE_WITH_FOLLOWUP dans la campagne de consolidation du 2026-09-18). A1 et A4 livrés par #15990 (MERGED) ; A2/A3 explicitement laissés ouverts par le body (« See #14853, pas Closes ») : contrôles positif/négatif sur log de job réel.

Tâche

Reconstruire et redéployer l'image runner (Dockerfile de linux-runner avec seed_action_cache.py embarqué), puis exécuter les contrôles :

  • A2 contrôle positif : un job dont l'action Seed-step est prévue dans le cache — vérifier qu'il n'y a pas de téléchargement réseau (log du job réel).
  • A3 contrôle négatif : une action absente du cache — vérifier le fallback réseau et l'enrichissement du cache.

Acceptance

Grain: MED/tooling — lane myia-po-2025:CoursIA-2 — prev: MED/qc #14853

Activity

  1. jsboige commented on Oct 3, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA — contrôles A2/A3 seed_action_cache : build local de l'image, runner éphémère à label unique seed-a23 sur po-2023 (aucun job de la flotte détourné), preuves par logs de job réels + inspection du cache enrichi, livraison = workflow de contrôle + doc + preuves ici.

    Grain: MED/tooling — lane myia-po-2023:CoursIA — prev: MED/docs #18935

  2. jsboige commented on Oct 3, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2023:CoursIA — contrôles A2/A3 exécutés sur jobs réels, preuves ci-dessous, livraison = PR #18942 (section doc) + ce commentaire.

    Setup : image linux-runner reconstruite (docker build, seed 11 archives, setup-python → a26af69be951a… — le SHA même de la preuve A1 de #15990). Deux jobs réels sur slot éphémère à label unique seed-a23 (enregistrement ACTIONS_RUNNER_INPUT_*, désenregistrement natif après un job — aucun job de flotte visé, flotte po-2024 non touchée). Run 37093241932, jobs 111117851523 (a2) / 111117939237 (a3), 2/2 succès.

    A2 — contrôle positif (action seedée) : job uses: actions/setup-python@a26af69… (SHA épinglé = clé de cache exacte). Diag runner (Worker_*.log, INFO) :

    [03:27:25Z INFO ActionManager] Check if action archive 'actions/setup-python@a26af69…' already exists in cache directory '/opt/actions-cache'
    [03:27:25Z INFO ActionManager] Found action archive '/opt/actions-cache/actions_setup-python/a26af69….tar.gz' in cache directory '/opt/actions-cache'
    

    Zéro requête codeload dans le diag (l'unique occurrence du mot est le nom du feature-flag actions_use_bearer_token_for_codeload dans le dump config), zéro « Save archive ». Cache /opt/actions-cache après le job : byte-identique à la baseline du build (mesuré par docker cp du conteneur mort).

    A3 — contrôle négatif (action absente du cache) : job uses: actions/setup-java@v4 → résout cf277c60eb25467037889841efdb72551f06f6c3. Diag runner :

    [03:28:30Z INFO ActionManager] Check if action archive 'actions/setup-java@cf277c60…' already exists in cache directory '/opt/actions-cache'
    [03:28:30Z INFO ActionManager] Save archive 'https://codeload.github.com/actions/setup-java/tar.gz/cf277c60…' into /home/runner/_work/_actions/_temp_572fafec…/9e6adfda….tar.gz.
    [03:28:31Z INFO ActionManager] Request URL: https://codeload.github.com/actions/setup-java/tar.gz/cf277c60… Http Status: OK
    

    Fallback réseau confirmé (téléchargement codeload ~1 s, HTTP OK).

    Finding — le « cache enrichi » de l'acceptance est réfuté par la mesure : l'archive miss atterrit dans _work/_actions/_temp_<guid>/, jamais dans /opt/actions-cache (inchangé après le job, mesuré). ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE est read-only au runtime au pin 2.337.0 — seule l'image y écrit, au build. Une action absente du seed se télécharge donc à chaque job ; le garde zéro-trou est l'unique barrière (aucun complément runtime possible).

    Avertissement de lecture : le libellé « Download action repository » du journal de job apparaît même sur hit — c'est un nom d'étape, pas un événement réseau ; la preuve se lit dans le diag runner et dans l'état du répertoire.

    Branche de contrôle ci/16654-seed-a23-control supprimée après capture (le garde seed interdit setup-java sur main par design). Fermeture : coordinateur.

    Grain: MED/tooling — lane myia-po-2023:CoursIA — prev: MED/docs #18935

  3. added a commit that references this issue on Oct 3, 2026
  4. jsboige commented on Oct 6, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-ai-01:CoursIA-2 — tapis central du 06/10 22:46Z, file profonde posee par le coordinateur au dispatch (rang 8/11) : CI runners: controles A2/A3 positif/negatif seed_action_cache sur log de job reel (image r. Premiere etape de la lane : verifier firsthand que l'acceptance n'est pas deja couverte ; sinon [RELEASED] avec le motif.

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