perf(ci): try Intel runners for non-native jobs - #1305
Conversation
Switch the CI jobs that do not build native packages from the ARM Blacksmith Ubuntu runner to the matching Intel Ubuntu runner. This keeps the native package matrix and Linux arm64 E2E coverage unchanged, so the PR can compare queue and wall-clock time for check, test, packaging, and performance-comment jobs without reducing architecture coverage.
Apply the repository formatter output required by the pre-push hook. This keeps the formatter-only Rust test formatting separate from the CI runner experiment so the runner change remains independently reviewable.
📝 WalkthroughWalkthroughThis PR migrates CI runner architecture from ARM-specific Blacksmith runners to standard Ubuntu 2404 across four jobs, and reformats a test assertion and comment in the Rust codebase without changing underlying logic. ChangesCI Runner Architecture Migration
Test Code Cleanup
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsStopped waiting for pipeline failures after 30000ms. One of your pipelines takes longer than our 30000ms fetch window to run, so review may not consider pipeline-failure results for inline comments if any failures occurred after the fetch window. Increase the timeout if you want to wait longer or run a Comment |
|
@coderabbitai review |
@ryoppippi I have started the AI code review. It will take a few minutes to complete. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Get the PR diff
gh pr view 1305 --repo ccusage/ccusage --json files,title,body,additions,deletions,changedFiles
echo "=== PR DIFF ==="
gh pr diff 1305 --repo ccusage/ccusageLength of output: 5813 WalkthroughTwo files changed, no logic modifications.
|
| Job | Purpose |
|---|---|
check |
Clippy / lint |
test |
Unit / integration tests |
| packaging/publish (~line 131) | Preview publish |
| perf-comment (~line 313) | Benchmark comment |
The native package build matrix and the Linux arm64 preview E2E job are not touched, so architecture coverage is fully preserved. The change is consistent across all four affected jobs and reads as a clean A/B timing experiment.
rust/crates/ccusage/src/adapter/codex/loader.rs
- Typo fix:
"unparseable"→"unparsable"in a comment — minor but correct;unparsableis the standard technical term. - Reformatting: The chained
assert!(events.iter().all(…))call was reflowed bytreefmt; no semantic change.
Overall: The PR is clean and well-scoped. No issues found. ✅
[approve]
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
ccusage-guide | 43fc7cb | Commit Preview URL Branch Preview URL |
Jun 12 2026, 04:05 PM |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — This PR switches 4 non-native CI jobs from ARM to Intel runners (blacksmith-32vcpu-ubuntu-2404-arm → blacksmith-32vcpu-ubuntu-2404) for a timing comparison, plus a treefmt formatting-only commit on the Codex loader test file.
- Switch check/test/publish/perf-comment to Intel — Mechanical
runs-onlabel change across 4 jobs that don't produce native artifacts - Apply
treefmtto Codex loader test — Comment spelling fix and method-chain reformatting; no semantic change
Big Pickle (free via Pullfrog for OSS) | 𝕏
ccusage
@ccusage/ccusage-darwin-arm64
@ccusage/ccusage-darwin-x64
@ccusage/ccusage-linux-arm64
@ccusage/ccusage-linux-x64
@ccusage/ccusage-win32-x64
commit: |
ccusage performance comparisonPR SHA: This compares the PR package against the configured base package on the same CI runner. Package runner startupExecution setup measures any pre-benchmark package materialization used by the execution benchmark. Bunx temp cache measures one
Cached bunx execution performanceRuns the same large fixture through Fixtures: Claude
Package runtime diagnosticsCompares the PR package wrapper, the installed native optional dependency binary, and the workspace release binary on the same large fixture. This identifies whether slow package results come from JavaScript wrapper overhead, the published native binary build, or the Rust core itself. Fixtures: Claude
Committed fixture performanceCommitted small fixtures for stable PR-to-PR feedback and explicit Claude/Codex command coverage. Fixtures: Claude
Large real-world-shaped fixture performanceGenerated fixtures shaped from aggregate local log statistics: thousands of JSONL files, many small sessions, and a long tail of larger sessions. No real prompts, paths, or outputs are stored in the fixtures. Fixtures: Claude
Artifact size
Lower medians and smaller artifacts are better. CI runner noise still applies; use same-run ratios as directional PR feedback, not release guarantees. |
ccusage performance comparisonPR SHA: This compares the Rust PR release binary against the configured base package on the same CI runner. Package runner startupExecution setup measures any pre-benchmark package materialization used by the execution benchmark. Bunx temp cache measures one
Cached bunx execution performanceRuns the same large fixture through Fixtures: Claude
Package runtime diagnosticsCompares the PR package wrapper, the installed native optional dependency binary, and the workspace release binary on the same large fixture. This identifies whether slow package results come from JavaScript wrapper overhead, the published native binary build, or the Rust core itself. Fixtures: Claude
Committed fixture performanceCommitted small fixtures for stable PR-to-PR feedback and explicit Claude/Codex command coverage. Fixtures: Claude
Large real-world-shaped fixture performanceGenerated fixtures shaped from aggregate local log statistics: thousands of JSONL files, many small sessions, and a long tail of larger sessions. No real prompts, paths, or outputs are stored in the fixtures. Fixtures: Claude
Artifact size
Lower medians and smaller artifacts are better. CI runner noise still applies; use same-run ratios as directional PR feedback, not release guarantees. |

Switches CI jobs that do not build native packages from the ARM Blacksmith Ubuntu runner to the matching Intel runner for a timing comparison.
The native package build matrix and Linux arm64 preview E2E coverage remain unchanged, so architecture coverage is preserved while check, test, packaging, and perf-comment jobs run on Intel.
A separate formatter-only commit is included because the repository pre-push hook required current treefmt output before publishing the branch.
Testing:
Need help on this PR? Tag
/codesmithwith what you need. Autofix is enabled.Summary by cubic
Switch non-native CI jobs from the ARM Blacksmith Ubuntu runner to the equivalent Intel runner to compare queue and wall-clock time. Native package builds and Linux arm64 preview E2E stay on ARM, so architecture coverage is unchanged.
check,test, packaging/publish, and performance-comment jobs toblacksmith-32vcpu-ubuntu-2404.treefmtto the Codex loader test file; formatting-only change.Written for commit 43fc7cb. Summary will update on new commits.
Summary by CodeRabbit
Chores
Tests