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