ci(macos): self-provision libkrun via brew - #508
Conversation
…er state The three macOS jobs (build-macos, boot/autospawn e2e, minvmd FFI smoke) only verified that /opt/homebrew/lib/libkrun.dylib was present and errored if not — libkrun was expected to be hand-provisioned on the self-hosted Apple Silicon runner. That runner state silently went missing, failing every Rust code PR on build-macos (a required check on the critical path of the minimald networking epic). Add an idempotent `brew install slp/krun/libkrun` step before each Verify guard so CI provisions libkrun itself. It is the same slp/krun tap the runner setup used, so the supply-chain surface is unchanged; `brew install` is a no-op when already present. Drops the now-inaccurate "CI does not install it" comment. Self-validating: this PR's own build-macos run executes the new step, so a green run proves the fix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ss8WXtUUr9PBHuJcJMseBj
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe macOS CI workflow gains an explicit Changeslibkrun auto-provisioning across macOS CI jobs
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Make the macOS CI install
libkrunitself instead of depending on hand-provisioned self-hosted-runner state.Why
The three macOS jobs (
build-macos, boot/autospawn e2e, minvmd FFI smoke) only verified/opt/homebrew/lib/libkrun.dylibexisted and errored otherwise — libkrun was expected to be pre-provisioned on the self-hosted Apple Silicon runner. That runner state silently went missing, sobuild-macosfails on every Rust code PR (libkrun.dylib not found).build-macosis on the critical path of the minimald networking epic — it blocks #507 and all of #496–#502.History note: there was never a libkrun install/fetch step in
ci-macos.yml(scripts/fetch-libkrun.shexists but fetches the Linux.sopackage and is only wired intoci-linux-kvm.yml). So this is a runner-provisioning gap, not a regression — and the durable fix is to stop depending on runner state.Change
Add an idempotent provision step before each Verify guard:
slp/kruntap the runner setup already used → supply-chain surface unchanged.brew installis a no-op when already present.Self-validating
This PR's own
build-macos(+ boot/autospawn/FFI) jobs run the new step first, so a green run proves the fix end-to-end.🤖 Generated with Claude Code
Summary by CodeRabbit