GitHub Actions Runtime Regression Audit
Use this skill to detect runtime regressions between historical baseline runs and current runs.
What this skill does
- Reads baseline and current GitHub Actions run JSON exports (
gh run view --json ...) - Calculates average and p95 runtime per repository + workflow + job
- Compares current metrics against baseline and ranks largest regressions
- Flags warn/critical regressions by absolute seconds and percent delta
- Emits text summary for humans or JSON for automation
Inputs
Required:
BASELINE_GLOB(glob for baseline run JSON files)CURRENT_GLOB(glob for current run JSON files)
Optional:
TOP_N(default:20)OUTPUT_FORMAT(textorjson, default:text)WARN_DELTA_SECONDS(default:30)CRITICAL_DELTA_SECONDS(default:90)WARN_DELTA_PERCENT(default:15)CRITICAL_DELTA_PERCENT(default:35)FAIL_ON_CRITICAL(0or1, default:0)WORKFLOW_MATCH(regex, optional)WORKFLOW_EXCLUDE(regex, optional)JOB_MATCH(regex, optional)JOB_EXCLUDE(regex, optional)REPO_MATCH(regex, optional)REPO_EXCLUDE(regex, optional)
Collect run JSON
gh run view <run-id> --json databaseId,workflowName,headBranch,headSha,url,repository,jobs \
> artifacts/github-actions/run-<run-id>.json
Capture a stable baseline window (for example previous 2 weeks), then current runs from latest commits.
Run
Text report:
BASELINE_GLOB='artifacts/github-actions/baseline/*.json' \
CURRENT_GLOB='artifacts/github-actions/current/*.json' \
TOP_N=15 \
WARN_DELTA_SECONDS=45 \
CRITICAL_DELTA_SECONDS=120 \
bash skills/github-actions-runtime-regression-audit/scripts/runtime-regression-audit.sh
JSON output with CI gate:
BASELINE_GLOB='artifacts/github-actions/baseline/*.json' \
CURRENT_GLOB='artifacts/github-actions/current/*.json' \
OUTPUT_FORMAT=json \
FAIL_ON_CRITICAL=1 \
bash skills/github-actions-runtime-regression-audit/scripts/runtime-regression-audit.sh
Run with bundled fixtures:
BASELINE_GLOB='skills/github-actions-runtime-regression-audit/fixtures/baseline-*.json' \
CURRENT_GLOB='skills/github-actions-runtime-regression-audit/fixtures/current-*.json' \
bash skills/github-actions-runtime-regression-audit/scripts/runtime-regression-audit.sh
Output contract
- Exit
0in reporting mode (default) - Exit
1whenFAIL_ON_CRITICAL=1and at least one job crosses critical regression thresholds textmode prints summary + top regressions + new jobs without baselinejsonmode outputs summary, ranked regressions, and newly observed jobs