GitHub Actions Step Flake Audit
Use this skill to catch flaky CI steps that alternate between passing and failing across workflow runs.
What this skill does
- - Reads GitHub Actions run JSON exports (
gh run view --json ...) - Groups step outcomes by repository + workflow + job + step name
- Scores each step for flake risk when both success and failure outcomes are present
- Ranks the most unstable steps by failure rate and failed-run volume
- Supports text/json outputs and optional fail gate for CI enforcement
Inputs
Optional:
- -
RUN_GLOB (default: artifacts/github-actions/*.json) - INLINECODE3 (default:
20) - INLINECODE5 (
text or json, default: text) - INLINECODE9 (default:
3) — minimum observed step runs before scoring - INLINECODE11 (default:
0.20) — flaky failure-rate threshold - INLINECODE13 (default:
0.40) — critical flaky failure-rate threshold - INLINECODE15 (
0 or 1, default: 0) - INLINECODE19 /
REPO_EXCLUDE (regex, optional) - INLINECODE21 /
WORKFLOW_EXCLUDE (regex, optional) - INLINECODE23 /
JOB_EXCLUDE (regex, optional) - INLINECODE25 /
STEP_EXCLUDE (regex, optional)
Collect run JSON
CODEBLOCK0
Run
Text report:
CODEBLOCK1
JSON output + fail gate:
CODEBLOCK2
Run against bundled fixtures:
CODEBLOCK3
Output contract
- - Exit
0 in reporting mode (default) - Exit
1 when FAIL_ON_CRITICAL=1 and one or more flaky step groups are critical - Text mode prints summary + top flaky steps
- JSON mode prints summary + ranked groups + critical groups
GitHub Actions 步骤波动性审计
使用此技能来捕捉在工作流运行中交替通过和失败的不稳定CI步骤。
此技能的功能
- - 读取GitHub Actions运行JSON导出文件(gh run view --json ...)
- 按仓库 + 工作流 + 任务 + 步骤名称对步骤结果进行分组
- 当同时存在成功和失败结果时,对每个步骤进行波动性风险评分
- 根据失败率和失败运行数量对最不稳定的步骤进行排名
- 支持文本/JSON输出以及用于CI强制执行的可选失败门控
输入参数
可选参数:
- - RUNGLOB(默认值:artifacts/github-actions/*.json)
- TOPN(默认值:20)
- OUTPUTFORMAT(text或json,默认值:text)
- MINOCCURRENCES(默认值:3)— 评分前观察到的最小步骤运行次数
- WARNFAILURERATE(默认值:0.20)— 波动性失败率阈值
- CRITICALFAILURERATE(默认值:0.40)— 严重波动性失败率阈值
- FAILONCRITICAL(0或1,默认值:0)
- REPOMATCH / REPOEXCLUDE(正则表达式,可选)
- WORKFLOWMATCH / WORKFLOWEXCLUDE(正则表达式,可选)
- JOBMATCH / JOBEXCLUDE(正则表达式,可选)
- STEPMATCH / STEPEXCLUDE(正则表达式,可选)
收集运行JSON文件
bash
gh run view --json databaseId,workflowName,headBranch,headSha,url,repository,jobs \
> artifacts/github-actions/run-.json
运行
文本报告:
bash
RUN_GLOB=artifacts/github-actions/*.json \
MIN_OCCURRENCES=5 \
WARNFAILURERATE=0.15 \
CRITICALFAILURERATE=0.35 \
bash skills/github-actions-step-flake-audit/scripts/step-flake-audit.sh
JSON输出 + 失败门控:
bash
RUN_GLOB=artifacts/github-actions/*.json \
OUTPUT_FORMAT=json \
FAILONCRITICAL=1 \
bash skills/github-actions-step-flake-audit/scripts/step-flake-audit.sh
针对捆绑的测试数据进行运行:
bash
RUN_GLOB=skills/github-actions-step-flake-audit/fixtures/*.json \
bash skills/github-actions-step-flake-audit/scripts/step-flake-audit.sh
输出约定
- - 在报告模式下退出码为0(默认)
- 当FAILONCRITICAL=1且存在一个或多个严重波动性步骤组时,退出码为1
- 文本模式打印摘要 + 最不稳定的步骤
- JSON模式打印摘要 + 排名组 + 严重组