Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Show DEV: I Built a Bayesian GitHub Action to Find the Commit That Broke Your C++ Project

Описание и применение

BayesCI – это GitHub‑Action, который использует байесовскую модель для определения коммита, вызвавшего сбой сборки C++ проекта, анализируя сообщения компилятора и историю коммитов.

Задача

Identify which commit caused a failed CI build for a C++ project when compiler diagnostics do not specify the culprit commit.

Результат

In 20 synthetic failure scenarios BayesCI parsed diagnostics in 20/20 cases, placed the culprit in the top 3 in 19/20 cases, and identified the culprit as the top‑1 result in 11/20 cases.

Рабочий процесс

  • 1. Configure BayesCI in the GitHub Actions workflow.
  • 2. On a build failure, BayesCI reads GCC/Clang/linker/CMake diagnostics.
  • 3. It enumerates commits since the last successful build and extracts changed files, symbols, lines, and build configuration.
  • 4. The C Bayesian engine computes a ranking of commits based on the diagnostics.
  • 5. The Python wrapper formats the results and writes them to the GitHub Actions summary.
  • 6. The developer reviews the ranked list to identify the culprit commit.

Доказательства

I built BayesCI, an open‑source GitHub Action powered by a small Bayesian engine written in C, with Python handling Git analysis and compiler diagnostics.

Источник

I tested it on 20 synthetic failure scenarios: 20/20 — diagnostics successfully parsed; 19/20 — culprit appeared in the displayed Top 3; 11/20 — culprit was the unambiguous Top‑1 result.

Источник

BayesCI reads GCC, Clang, linker, and CMake diagnostics.

Источник

The parser is replaceable. The mathematical engine is reusable.

Источник

  • Дата записи: 2026-10-25T14:41:14.955Z