ENGINEERING

Detect Flaky CI Failures and File an Owner-Assigned Linear Ticket

Watches GitHub Actions failures, confirms a test is intermittent by checking it passed on retry or recent reruns.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitHub Actions workflow run failsGitHubGitHub
  • ActionFetch failed tests and recent reruns for the branchGitHubGitHub
  • LogicBranch: intermittent (passed on retry) vs. consistent failure
  • ActionResolve owner from CODEOWNERS for the test fileGitHubGitHub
  • ActionCreate owner-assigned ticket in Flaky Tests projectLinearLinear
  • OutputPost quarantine summary to team Slack channelSlack

What it does

When a CI run fails, this workflow decides whether the failure is a real regression or a flaky test. A test is treated as flaky when the same test passed on a retry or on a recent run of the same branch. Confirmed flakes get a Linear ticket assigned to the owning engineer (resolved from CODEOWNERS) and a heads-up in Slack so the build can move forward.

When to use it

Run this when intermittent test failures are eroding trust in your pipeline and developers are blindly re-running jobs. It separates signal from noise automatically so genuine regressions still block while flakes get tracked and owned.

How it works

  1. 1GitHub webhook fires on a failed workflow run.
  2. 2The flow pulls the failed test names and checks GitHub for the same tests passing on retry or in the last few runs of the branch.
  3. 3A branch decides: consistent failure exits quietly (real bug, left to the PR check); intermittent failure continues.
  4. 4CODEOWNERS is read from the repo to map the test file to an owner.
  5. 5A Linear issue is created in the Flaky Tests project, assigned to that owner, with the run link and failure logs.
  6. 6A Slack message posts the quarantine summary to the team channel.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Connect LinearIssues, projects, cycles, triage.
  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.