ワンクリックで
analyze-ci-speed
// Analyze compilation time and test durations from CI logs. Use when the user asks about slow builds, slow tests, or wants to optimize CI time.
// Analyze compilation time and test durations from CI logs. Use when the user asks about slow builds, slow tests, or wants to optimize CI time.
Detect breaking changes by analyzing git diff against dev branch. Checks for state access changes in call/genesis handlers, state item ordering violations, and demo-rollup-schema.json changes.
Identify flaky tests by comparing failures across multiple CI runs. Use when the user suspects flaky tests, sees intermittent failures, or wants to analyze test reliability.
Debug failed CI tests by fetching workflow logs from GitHub Actions and analyzing failures. Use when the user mentions CI failures, test failures, or wants to understand why their PR's CI is failing.
| name | analyze-ci-speed |
| description | Analyze compilation time and test durations from CI logs. Use when the user asks about slow builds, slow tests, or wants to optimize CI time. |
Analyze compilation time and test durations from CI logs to identify optimization opportunities.
gh CLI installed and authenticated (gh auth login)Get latest successful run from dev branch:
gh run list --workflow=Rust --branch=dev --limit=1 --status=success --json databaseId,conclusion,headSha,createdAt
Get test jobs (nextest, nextest_all_features, coverage):
gh run view <run-id> --json jobs --jq '.jobs[] | select(.name == "nextest" or .name == "nextest_all_features" or .name == "coverage") | {id: .databaseId, name: .name}'
Download logs, stripping ANSI codes:
mkdir -p ci-logs/speed-analysis/
gh run view --job <job-id> --log | perl -pe 's/\e\[[0-9;]*m//g' > ci-logs/speed-analysis/<job_name>.log
Search for cargo build summary in logs:
Finished ... in Xm Ys
Also look for incremental compilation info and cache hit rates.
Parse nextest output for test durations. Look for patterns like:
PASS [ 1.234s] crate_name::module::test_name
SLOW [ 15.678s] crate_name::module::slow_test
Extract all test durations and sort to find top 10 slowest tests.
Provide summary: