Hi all,
A short follow-up to the earlier announcement of Ignite PR Checker [1]. A
few
people asked how it compares to the teamcity-bot day to day, so here are the
differences that actually change the workflow.
1) A stricter, less noisy definition of "blocker".
A test is reported as broken-by-your-PR only if it fails in ALL of the
last N
finished runs of its suite on the branch (default 3), is clean across
the last
~100 master runs, AND still fails in the most recent finished run — a
passing
re-run clears it automatically. That removes almost all of the single-run
flapping. Concrete example from this week: PR #13296 had 19 failing
suites and
~35 failing tests; the checker reported 0 blockers, because every one of
them
either fails on master too or passes on re-run. The signal is a handful
of
tests, not the raw red count.
2) You work entirely inside the PR — under your own accounts, no bot
identity.
Comment `/run-all` (or `/run-all top`, or `/top`) on a pull request and
the whole
RunAll chain is queued under YOUR TeamCity token; the verdict comes back
as a PR
comment and/or a JIRA visa from YOUR account. There is no shared
technical
account to provision and nothing is attributed to a bot — every action
is the
person who asked, authenticated with their own ci2/JIRA/GitHub tokens.
3) It re-runs the noise for you.
Opt-in: when a run you triggered finishes with blockers or broken suites
(timeout/OOM/crash), those suites are re-run automatically (up to 2
attempts),
and the PR comment narrates the waves with a live ETA. A green re-run
clears the
blocker before the verdict is finalised.
4) It catches what a green build can hide.
- broken suites (compilation/timeout/crash) are surfaced, not silently
dropped;
- a suite that ran far fewer tests than the same suite on master is
flagged —
tests that never ran can't fail — using master as the baseline rather
than
TeamCity's pinned-reference metric, which false-alarms on PR branches
long
after a legitimate test-count change;
- a run that was cancelled after getting through most of its suites is
still
analysed (as partial), instead of showing "no run";
- if commits were pushed after the analysed run, the verdict is marked
stale
with a one-click re-run.
5) No infrastructure to babysit.
No database, a single small self-updating process, Apache-2.0. Tokens
are stored
encrypted and only while a standing option is switched on.
Live for contributors: https://ignite-pr-checker.is-a.dev — log in with a
ci2
access token. The flaky-tests board and the status page are public (no
login).
Source and issues: https://github.com/anton-vinogradov/ignite-pr-checker.
It is meant to complement the existing tooling, not replace anything
overnight —
feedback and PRs are very welcome.
Thanks,
Anton
[1] <link to your first announcement thread>
On Sat, Jul 11, 2026 at 12:09 AM Anton Vinogradov <[email protected]> wrote:
> Hi Igniters,
>
> I've built a small tool that answers one question about a pull request:
> which test failures are actually caused by the change, and which were
> already broken or flaky before it.
>
> https://ignite-pr-checker.is-a.dev
>
> What it does:
>
> * Analyses the PR's latest RunAll on TeamCity (ci2) and splits the failed
> tests into:
> - blockers: fail consistently in the branch's recent runs and never fail
> in the last ~100 master runs — attributed to the PR;
> - recently started failing: a fresh break to watch, not yet steady;
> - filtered noise: pre-existing on master or flapping on the same code.
> * Shows suites that didn't produce a reliable run (compilation, execution
> timeout, OOM, interrupted chain) separately instead of mining them for
> bogus failures.
> * Verdicts update live while a RunAll is still running — failures of
> already-finished suites are folded in, no need to wait ~4h for the chain.
> * Groups blockers by root cause (one broken thing often shows up as dozens
> of failing tests), with pass/fail history strips per test.
> * Can trigger RunAll / re-run individual suites or whole sections right
> from the page, and post the verdict ("visa") as a comment to the
> IGNITE ticket — manually, once on run completion, or automatically for
> every run you trigger (opt-in).
> * A "flaky tests" page keeps a fix-master queue: tests currently failing
> on master, ranked by fail rate, linked to the failing master runs.
>
> How it relates to the TC Bot: same core idea, and on identical builds the
> verdicts match the bot's. The differences are that it watches all open PRs
> continuously (no per-request visa needed), reads TeamCity on the fly with
> no database, and anchors every verdict to the newest finished run.
>
> Login is your own ci2 access token; it stays encrypted in your session
> cookie and is never stored server-side. Everything runs under your account.
>
> Source (Apache-2.0): https://github.com/anton-vinogradov/ignite-pr-checker
>
> The tool is young and I'd really appreciate feedback — issues, discussions
> in the repo, or just a reply here. If you find a case where the verdict is
> wrong or confusing, that's exactly what I want to hear about.
>
> Thanks,
> Anton
>