Skip to content

ci: survive cold mesh-llm cache — clone locked rev when cargo fetch leaves no checkout - #3433

Open
flaukowski wants to merge 1 commit into
block:mainfrom
flaukowski:upstream-ci-mesh-cold-fetch
Open

ci: survive cold mesh-llm cache — clone locked rev when cargo fetch leaves no checkout#3433
flaukowski wants to merge 1 commit into
block:mainfrom
flaukowski:upstream-ci-mesh-cold-fetch

Conversation

@flaukowski

Copy link
Copy Markdown

Summary

cargo fetch populates ~/.cargo/git/db but materializes git/checkouts lazily at build time. The "Build mesh llama native libraries" step probes git/checkouts right after cargo fetch, so on any runner without a warm rust-cache — a fresh fork, an evicted cache, a new runner image — the probe comes up empty and the job hard-fails with mesh-llm checkout for <rev> not found after cargo fetch. This repo's CI rarely sees it because its caches stay warm, but forks hit it deterministically (we did, on ours, on every macOS Desktop Build until this patch).

Fix: when no checkout exists, clone the Cargo.lock-pinned rev directly into RUNNER_TEMP — the URL is parsed from the same lockfile entry as the rev, so a mesh-llm dependency bump still needs no lockstep workflow edit. The warm-cache fast path is unchanged. Applied to the three workflows sharing the block: ci.yml, release.yml, signed-macos-canary.yml.

Proven on our fork: the previously-failing cold macOS job went green exercising the fallback end-to-end (flaukowski#3).

Test plan

  • Cold path exercised end-to-end on a fork with no caches: macOS Desktop Build passes via the fallback clone.
  • Warm path unchanged (fallback only runs when the find probe is empty).
  • URL/rev extraction verified against Cargo.lock (git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.73.1#43103c5c…https://github.com/Mesh-LLM/mesh-llm.git).

🤖 Generated with Claude Code

…eaves no checkout

cargo fetch populates ~/.cargo/git/db but only materializes checkouts
lazily at build time, so runners with no warm rust-cache (fresh fork,
evicted cache) failed 'Build mesh llama native libraries' with
'checkout not found after cargo fetch'. Fall back to cloning the
Cargo.lock-pinned rev (URL also derived from the lockfile) into
RUNNER_TEMP. Applies to ci.yml, release.yml, signed-macos-canary.yml.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant