ENGINEERING

Flaky-Test Quarantine Ledger from CI Reruns

Detects tests that pass on rerun after failing in the same CI commit, records each occurrence to a BigQuery ledger.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitHub workflow_run completedGitHubGitHub
  • ActionFetch job results and prior attempts for the SHAGitHubGitHub
  • LogicTag tests that failed then passed on the same commit
  • ActionAppend flake events to BigQuery ledgerGoogle BigQueryBigQuery
  • LogicCompute 14-day flake rate and branch on thresholdGoogle BigQueryBigQuery
  • OutputNotify team of newly quarantined tests in SlackSlack

What it does

It watches GitHub Actions workflow runs and identifies tests that fail then pass on a retry of the same commit — the classic flaky signature. Every flip is written to a durable BigQuery ledger so flake rate is measured over time, not guessed. When a test's 14-day flake rate crosses your threshold, it is marked quarantined and the team is notified.

When to use it

Run this when reruns are masking instability and you need hard data on which tests are actually flaky before you start spending engineering time deflaking them. It turns "just hit retry" into an auditable trail.

How it works

  1. 1A GitHub workflow_run completion fires the trigger.
  2. 2The flow pulls the job and step results plus any prior attempts for the same commit SHA.
  3. 3Logic compares attempts: a test that was red then green on the same SHA is tagged as a flake event.
  4. 4Each flake event is appended to a BigQuery ledger table with test ID, SHA, branch, and timestamp.
  5. 5Logic queries the rolling 14-day flake rate per test and branches when it exceeds the threshold.
  6. 6Crossing tests are posted to Slack with their flake rate and recent failure samples.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Connect BigQueryDatasets, queries, schemas.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.