Lane review : passer l'état de la CI de la tête de PR à la persona #12

Closed
opened 2026-10-13 21:36:35 +02:00 by mathieu · 1 comment
Owner

Constat

La lane review ne voit pas la CI de la PR qu'elle relit. Sur fabrique-pdf PR n° 4 (2026-10-13), la revue écrit « Je n'ai pas pu lancer les tests : la PR dit ne pas les avoir lancés non plus », alors qu'ils étaient verts deux fois : job verifier de la lane code, puis workflow tests de la PR (run 360). La persona n'a pas de shell, à raison ; mais rien ne lui passe l'état des vérifications déjà faites.

La lane fix lit déjà cet état par l'API pour son motif ci (runs de push ou pull_request sur la tête, lanes lane-*.yml exclues, Forgejo listant un run pull_request_target comme pull_request).

Proposition

Dans exemples/lane-review.yml, preparer relève, pour la tête de la PR, les runs de CI (même filtre que fix) et leur état ; le workflow écrit un résumé dans le dossier de sortie (pr.ci, à côté de pr.diff et pr.log) et une ligne CI : verte | rouge | en cours | aucune dans l'en-tête du message. En cas de CI rouge, les dernières lignes des jobs en échec, plafonnées comme pour fix.

La persona review tient compte de cet état : une CI rouge est un constat bloquant ; une CI absente ou en cours se dit telle, sans conclure que les tests n'ont pas tourné.

Critères d'acceptation

  • Le message de la persona review porte l'état de la CI de la tête ; pr.ci le détaille.
  • Les runs des lanes elles-mêmes sont exclus, comme pour fix.
  • La persona ne déduit plus « tests non lancés » d'une PR dont la CI est verte ; un test de tests/test_lanes.py vérifie la consigne.
  • Un cas de tests/essai-local.sh avec une CI rouge montre un REQUEST_CHANGES qui la cite.
  • CONTRAT.md décrit l'entrée.
## Constat La lane `review` ne voit pas la CI de la PR qu'elle relit. Sur fabrique-pdf PR n° 4 (2026-10-13), la revue écrit « Je n'ai pas pu lancer les tests : la PR dit ne pas les avoir lancés non plus », alors qu'ils étaient verts deux fois : job `verifier` de la lane `code`, puis workflow `tests` de la PR (run 360). La persona n'a pas de shell, à raison ; mais rien ne lui passe l'état des vérifications déjà faites. La lane `fix` lit déjà cet état par l'API pour son motif `ci` (runs de `push` ou `pull_request` sur la tête, lanes `lane-*.yml` exclues, Forgejo listant un run `pull_request_target` comme `pull_request`). ## Proposition Dans `exemples/lane-review.yml`, `preparer` relève, pour la tête de la PR, les runs de CI (même filtre que `fix`) et leur état ; le workflow écrit un résumé dans le dossier de sortie (`pr.ci`, à côté de `pr.diff` et `pr.log`) et une ligne `CI : verte | rouge | en cours | aucune` dans l'en-tête du message. En cas de CI rouge, les dernières lignes des jobs en échec, plafonnées comme pour `fix`. La persona `review` tient compte de cet état : une CI rouge est un constat bloquant ; une CI absente ou en cours se dit telle, sans conclure que les tests n'ont pas tourné. ## Critères d'acceptation - [ ] Le message de la persona `review` porte l'état de la CI de la tête ; `pr.ci` le détaille. - [ ] Les runs des lanes elles-mêmes sont exclus, comme pour `fix`. - [ ] La persona ne déduit plus « tests non lancés » d'une PR dont la CI est verte ; un test de `tests/test_lanes.py` vérifie la consigne. - [ ] Un cas de `tests/essai-local.sh` avec une CI rouge montre un `REQUEST_CHANGES` qui la cite. - [ ] CONTRAT.md décrit l'entrée.
Author
Owner

Fait par #18 (fusionnée, 606be5c). Éprouvé sur essai-actions @ 337be1e : PR 56 (CI verte) → APPROVED citant la CI verte ; PR 57 (CI rouge) → REQUEST_CHANGES citant le job scripts, le run et la ligne du journal.

Fait par #18 (fusionnée, `606be5c`). Éprouvé sur essai-actions @ 337be1e : PR 56 (CI verte) → `APPROVED` citant la CI verte ; PR 57 (CI rouge) → `REQUEST_CHANGES` citant le job `scripts`, le run et la ligne du journal.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mathieu/lanes#12
No description provided.