Skip to content

ci(cmux-tui): cache cargo builds in the Rust jobs - #14613

Merged
teamleaderleo merged 1 commit into
mainfrom
ci-cmux-tui-cargo-cache
Sep 25, 2026
Merged

teamleaderleo merged 1 commit into
mainfrom
ci-cmux-tui-cargo-cache

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

cmux-tui.yml had no cargo cache, so every dispatch compiled the whole workspace from scratch. This adds Swatinem/rust-cache (pinned to v2.9.2) after "Set up pinned Rust" in the lint, valgrind and test jobs, caching the registry and cmux-tui/target. Caches stay scoped to the dispatched branch, so no branch writes into main's scope.

Measured (focused mode, unix_process_scope, Blacksmith Linux)

test (linux) cargo test step lint (linux)
No cache (3 recent runs) 839 to 959 s (mean 907) 614 s 233 to 238 s
This branch, cold (run 36132320918) 831 s 244 s
This branch, warm (run 36134437399) 691 s 426 s 175 s

Agents re-dispatch this workflow on the same branch while iterating (verify-cmux-tui-hosted.sh), so from the second run on each iteration saves about 3.5 min per test job and 1 min on lint. The cache restore is fast enough that it doesn't show up among the slowest steps.

🤖 Generated with Claude Code


Summary by cubic

Adds cargo caching to the cmux-tui CI jobs so the workspace no longer recompiles from scratch on every dispatch.

  • Swatinem/rust-cache (v2.9.2) runs after the pinned Rust setup in the lint, valgrind, and test jobs, caching the registry and cmux-tui/target.
  • Caches scope to the dispatched branch, so reruns on the same branch build incrementally and branch caches never reach main.
  • Warm runs measured at 691 s for test (down from ~921 s) and 175 s for lint, saving about 3.5 min per test job and 1 min on lint from the second run on.

Written for commit ba772f3. Summary will update on new commits.

Review in cubic

cmux-tui.yml had no cargo cache, so every run compiled the whole workspace
(test (linux) about 921 s on Blacksmith). Swatinem/rust-cache now keeps
cargo's registry and cmux-tui/target for lint, the valgrind shards and test.
Caches are scoped to the dispatched branch, so a rerun on the same branch
builds incrementally and no branch writes into main's scope.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 3 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 299fe7b9-5ab6-4f74-ab77-1db10dcac5ee

📥 Commits

Reviewing files that changed from the base of the PR and between 561d317 and ba772f3.

📒 Files selected for processing (1)
  • .github/workflows/cmux-tui.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@teamleaderleo
teamleaderleo merged commit a1a5ae9 into main Sep 25, 2026
93 of 95 checks passed
@teamleaderleo
teamleaderleo deleted the ci-cmux-tui-cargo-cache branch September 25, 2026 12:39
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for ba772f3884, merged 2026-09-25 12:39:12 UTC

  • Not verified at merge: ci-status (not reported), guards (17) (in progress), seven-language live conformance (in progress)
  • Verified: Web complexity, web-validation, Fast static checks, GhosttyKit release check, protocol contract, Testbox broker trust boundary
  • Skipped by policy: ${{ matrix.language }} consumer, ${{ matrix.language }} package, browser, Claude wrapper regressions, macos, remote-daemon, Rust SDK MSRV (1.88), suite-coverage, web, web-build, web-database-tests, web-tests
  • Full suite: runs on main after merge.

Labeled merged-unverified: if main breaks near this merge, look here first.

@github-actions github-actions Bot added the merged-unverified A judging check was not green at merge; see the merge receipt comment label Sep 25, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 25, 2026
c055747 ci: parse runner expressions in the fork guard, and gate LINUX_RUNNER on fork PRs (manaflow-ai#14192)
fc112a8 docs(testing): describe how run-e2e.sh actually picks the runner (manaflow-ai#14620)
0f6edfa ci(owned): keep seeds until the disk is actually short, not at a fixed 6 (manaflow-ai#14621)
1b78097 CI: one owned-pool rescue sweeper instead of a rescue run per CI run (manaflow-ai#14602)
c7e79f6 Hold Files tree reloads while its context menu is open (manaflow-ai#14451)
dbb24cb ci: read the owned-pool rescue's Actions API through the route App (manaflow-ai#14499)
36b8063 ci: store each app-host product file once in the product archive (manaflow-ai#14601)
0dba677 CI: run CmuxWorkspaces package tests (manaflow-ai#14592)
2244e98 Fix color detection in native tmux mirrors (manaflow-ai#14175)
3d2478e build: keep every built file in a project group so Xcode reuses its build description (manaflow-ai#14486)
a1a5ae9 ci(cmux-tui): cache cargo builds in the Rust jobs (manaflow-ai#14613)
560e640 ci(owned): keep 8 seeds per mini and pick seeds by cost, not a 2-commit cap (manaflow-ai#14607)
561d317 cmux-debug-cli: find a publish-hq build in the HQ tag app cache (manaflow-ai#14579)
c0aaac7 fix(events): survive receive-timeout reconfiguration churn during replay (manaflow-ai#13888)
3bd994a fix: keep split zoom when the zoomed pane outlives a tab close (manaflow-ai#12853)
ca984c7 Session snapshots can send binding actions to ghostty on a surface that is no longer live (manaflow-ai#12623)
a47d65b settings: expose local tmux session persistence (manaflow-ai#13210)
e3acb25 ci: give an owned Mac's full app rebuild 35 minutes to compile (manaflow-ai#14594)

# Conflicts:
#	.github/workflows/ci-artifact-transport.yml
#	.github/workflows/ci-cache-receipts.yml
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/ci-owned-pool-rescue.yml
#	.github/workflows/ci-web.yml
#	.github/workflows/ci.yml
#	.github/workflows/cloud-machine-tests.yml
#	.github/workflows/cloud-vm-guest-install.yml
#	.github/workflows/cloud-vm-image-contract.yml
#	.github/workflows/cloud-vm-image-reachability.yml
#	.github/workflows/cloudflare-relay.yml
#	.github/workflows/cmux-skill-contract.yml
#	.github/workflows/cmux-tui-sdks.yml
#	.github/workflows/cmux-tui-spec.yml
#	.github/workflows/cmux-tui.yml
#	.github/workflows/indexnow-tests.yml
#	.github/workflows/iroh-v2.yml
#	.github/workflows/localization-catalog.yml
#	.github/workflows/r2-upload-tests.yml
#	.github/workflows/remote-daemon.yml
#	.github/workflows/repair-nightly-appcast-content-types.yml
#	.github/workflows/required-checks-drift.yml
#	.github/workflows/resolve-dispatch-ref.yml
#	.github/workflows/seed-derived-data.yml
#	.github/workflows/terminal-hang-diagnostics.yml
#	.github/workflows/test-e2e.yml
#	.github/workflows/test-ios.yml
#	.github/workflows/testbox-broker-guard.yml
#	.github/workflows/web-validation.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-unverified A judging check was not green at merge; see the merge receipt comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant