
Cinquante échecs sont en général quatre problèmes
Cinquante tests en échec dans une exécution, c'est un chiffre qui ne vous dit rien, sauf que quelqu'un doit lire cinquante traces. La plupart partagent une cause : un jeu de test, une forme changée, un timeout dans une dépendance partagée.
Grouper par l'échec plutôt que par le nom du test, c'est ce qui réduit cinquante à quatre. Deux tests aux noms sans rapport qui échouent sur la même assertion dans le même cadre sont un seul problème.
Le nouveau et le récurrent ont aussi besoin d'être séparés. Un échec qui apparaît dans neuf des dix dernières exécutions est une condition connue et appartient à une autre liste que celui apparu pour la première fois dans ce commit.
Le rapport que l'on lit dit quatre problèmes, dont un nouveau, avec la plage de commits jointe. Le rapport que l'on ignore dit cinquante.
Comment l'ActionFlow s'exécute sur le canevas
Les résultats de tests arrivent via un déclencheur Webhook depuis votre runner, ou un nœud HTTP Request les lit après une exécution Start Scheduled.
Un nœud Extract Data réduit chaque échec à sa signature : l'assertion, les cadres du haut de la trace, et le fichier de test. Il écarte le reste, parce que le reste est ce qui rend le résultat illisible.
Un nœud Uniq fusionne les signatures identiques. Un nœud Generate Object groupe le reste par l'échec qu'ils décrivent, les tests membres listés sous chacun.
Un nœud PostgreSQL ou MongoDB stocke l'historique des signatures, ce qui permet de distinguer les nouvelles des récurrentes tout court.
Un nœud If scinde les groupes contre cet historique. Un nœud Math compte dans combien des dernières exécutions chaque groupe récurrent est apparu.
Un nœud Sort met les nouveaux échecs en premier, puis les récurrents dans l'ordre de depuis combien de temps ils échouent, ce qui est l'ordre qu'un ingénieur choisirait de toute façon.
Un nœud Generate Text rédige la synthèse, y compris la plage de commits et les décomptes de groupes. Un nœud Slack la publie dans le canal d'ingénierie.
Aucun build n'est ici réussi ni échoué, et aucun test n'est désactivé. Le flux rapporte.
Nœuds utilisés par cet ActionFlow
- Webhook (Triggers) : résultats du runner dès que l'exécution se termine.
- Extract Data (Data) : réduit un échec à assertion, cadres et fichier.
- Uniq (Control) : fusionne les signatures identiques avant le regroupement.
- Generate Object (AI Core) : groupe par l'échec décrit, les membres listés.
- PostgreSQL (Data) : historique des signatures, pour distinguer nouveau et récurrent.
- If (Control) avec Math (Util) : scinde contre l'historique et compte la récurrence.
- Sort (Data) : nouveaux d'abord, puis récurrents par âge.
- Slack (Communication) : publie la synthèse. La décision de build reste au pipeline.
Questions fréquentes
Newsletter
Recevoir les mises à jour produit
Nouveaux nœuds, agents et notes produit. Nous n'envoyons un e-mail que lorsqu'il vaut la peine de l'ouvrir.