Repository navigation
fix(ci,#15941): align runner-starvation-advisory on its 2-label matrix, drop the inert guard - #15948
Merged
Merged
Conversation
…x, drop the inert guard
Le fichier annoncait trois labels (waiter+linux+lean) alors que la matrice en
porte deux, en quatre passages -- l'issue en relevait trois, le passage l.14-16
("3 workflows dedies", "les 3 sondes", "les 3 mesures") n'etait pas releve.
Controle positif dans le fichier : l.17 disait deja "les 2 autres".
La garde `pull_request` du job est logiquement toujours vraie (triggers
schedule + workflow_dispatch seuls). Retiree apres verification que le garde
qui possede la question ne l'exige pas (check_self_hosted_runner_policy.py :
"checked for the same-repo guard WHEN pull_request is present"), que la prose
d'allowlist qui la cite appartient a linux-runner-version-pin-advisory.yml et
non a ce fichier, et que l'idiome dominant des advisories schedule-only est
sans garde (4 sur 6).
Validation : YAML parse OK ; check_self_hosted_runner_policy.py OK rc=0
(132 jobs self-hosted) ; 58/58 tests dont la validation sur le corpus reel ;
aucun residu ; aucun organe n'epingle le nom.
Closes #15941
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
Path-collision (organ #13359/#13615)Cette PR #15948 (
|
This was referenced Sep 13, 2026
Merged
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.
Grain: LIGHT/tooling — lane myia-po-2026:CoursIA — prev: DEEP/slides #15865
Résumé
runner-starvation-advisory.ymlannonçait trois labels (waiter+linux+lean) alors que sa matrice en porte deux — et sa gardepull_requestne pouvait jamais être fausse. Les quatre passages concernés sont alignés sur la matrice, et la garde inerte est retirée.Closes #15941
1. Le compte de labels — l'issue en relevait trois, le fichier en porte quatre
L'issue nommait
l.1,l.11-12etl.26. Le passagel.14-16portait le même défaut sans être relevé :Trois « 3 » supplémentaires, invisibles parce qu'ils ne sont pas dans le voisinage du
name:. Corrigé aussi.l.1(et son échol.53job name)(waiter+linux+lean)(waiter+lean)l.11-12coursia-linuxreste couvert par son workflow dedie (linux-runner-starvation-advisory.yml, cron 19,49) »l.14-16l.26Contrôle positif dans le fichier lui-même :
l.17disait déjà correctement « 23,53 pour les 2 autres ». Le fichier était donc intérieurement incohérent — « 2 » est bien l'intention, pas une préférence de relecture.Le workflow dédié existe bien (vérifié sur
origin/main) :linux-runner-starvation-advisory.yml,name: Linux runner starvation advisory, cron19,49 * * * *, mesurecoursia-linux. Le remède « reformuler vers deux labels » est donc vrai, pas supposé.2. La garde inerte — retirée, et la décision est mesurée
La garde ne peut jamais être fausse : les seuls triggers sont
schedule+workflow_dispatch(l.36-39), doncgithub.event.pull_requestest absent,head.repo.full_namevautnull, et la branche== nullest vraie par construction.Le remède n'était pas évident — la garde est un idiome à l'échelle de la flotte. Quatre vérifications, pas une intuition :
scripts/ci/check_self_hosted_runner_policy.py: « Every pull_request job must also carry the exact same-repository guard … checked for the same-repo guard when pull_request is present » (docstringl.8-12). Ses entrées schedule-only disent explicitement « Aucun trigger pull_request -> aucune garde same-repo requise » (l.153-155,l.168,l.188).linux-runner-version-pin-advisory.yml(l.233-242), pas à mon fichier. L'entrée derunner-starvation-advisory.yml(l.244-263) dit déjà « 2 labels waiter + lean (matrice GitHub Actions, 2 entrees include) » — donc la prose du registre était déjà correcte et le fichier était le seul en retard.adjacency-stale-sweep,lane-claim-epic-wide-advisory,pr-gate-stale-sweep,candidate-delivered-advisory) ; les 2 qui en portent sont la lignéelinux-runner-*.check_self_hosted_runner_policy.py(allowlist par nom de fichier, inchangé) ;check_scheduler_liveness.pyn'énumère que la variantelinux-; aucun organe, test ou doc ne référence la chaîneRunner starvation advisory.Retirer suit aussi la règle maison « soustraire d'abord, n'ajouter que si le retrait laisse un trou réel » : le trou n'existe pas ici (
l.32-34documente déjà l'intention advisory), donc j'ai retiré plutôt qu'annoté.Validation
name = Runner starvation advisory (waiter+lean)· triggers['schedule','workflow_dispatch']· matrice['coursia-waiter','coursia-lean']·job if: <absent>python scripts/ci/check_self_hosted_runner_policy.py[self-hosted-policy] workflows=161 jobs=204 self_hosted=132/OK -- all self-hosted jobs satisfy isolation policy/ rc=0scripts/tests/test_check_self_hosted_runner_policy.pytest_current_repository_self_hosted_jobs_satisfy_isolation_policy= validation sur le corpus réel de workflows, pas sur une fixturegrep '3 labels|3 workflows|3 sondes|3 mesures|linux = 2|waiter+linux'→ aucungrep -rn 'Runner starvation advisory'→ uniquement les deux auto-références du fichier (l.1,l.53)Périmètre : 1 fichier, +9/−8. Aucun changement de comportement : deux reformulations de texte, un
name:d'affichage, une garde logiquement toujours vraie retirée.Note
L'issue est un suivi des deux OBS non-bloquantes de la review
[NanoClaw]sur #15423. Les deux sont traitées ; le point 1 est élargi d'un passage (voir §1), comme l'avait été le constat de NanoClaw sur le point 1 (commentaire d'en-tête → trois sites → ici quatre).See #15423 · See #14846
🤖 Generated with Claude Code