ci(cd-rust-cua-driver): pin macOS build to macos-26 runner - #1733
Conversation
v0.3.0's release CD failed on darwin-universal because the `screencapturekit` crate (added in PR #1720 for the native ScreenCaptureKit recording backend) pulls in `apple-metal v0.8.7`, whose Swift bridge uses `#available(macOS 26.0, *)`-guarded code that references `MTLSamplerReductionMode`, `MTLSamplerDescriptor.reductionMode`, and `.lodBias` — symbols only present in the macOS 26 SDK. The `macos-15` runner image ships a macOS 15 SDK that doesn't expose those, so the transitive Swift bridge fails at compile time even though the offending code is gated by `if #available(macOS 26.0, *)`. macOS 26 runner images are now available in GH Actions (actions/runner-images#13739), so move the build there. Linux + Windows builds are unchanged. After this merges, re-run the bump (cua-driver-rs → 0.3.1) and the CD should produce all four artifact sets cleanly.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Caution Review failedPull request was closed or merged during review 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)
📝 WalkthroughWalkthroughGitHub Actions workflow configuration updated to upgrade the macOS universal build job runner from ChangesmacOS Runner Configuration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Why
v0.3.0 CD failed on
darwin-universal:```
.../apple-metal-0.8.7/swift-bridge/Sources/AppleMetalBridge/State.swift:128:
error: cannot find 'MTLSamplerReductionMode' in scope
error: value of type 'MTLSamplerDescriptor' has no member 'reductionMode'
error: value of type 'MTLSamplerDescriptor' has no member 'lodBias'
```
Dep chain:
```
cua-driver → platform-macos → screencapturekit v6.0.1 → apple-metal v0.8.7
```
apple-metal v0.8.7uses#available(macOS 26.0, *)-guarded Swift code that references symbols only present in the macOS 26 SDK. Themacos-15runner ships a macOS 15 SDK, so the Swift bridge fails to compile even though the code is gated byif #available.screencapturekit = "6"was added in #1720 to ship the native ScreenCaptureKit recording backend.Change
Single line:
runs-on: macos-15→runs-on: macos-26in thebuild-macos-universaljob, plus an inline comment recording the why for future me.macOS 26 runners are available now per actions/runner-images#13739.
Out of scope
The Swift CI/CD workflows (
cd-swift-cua-driver.yml,cd-swift-lume.yml,ci-swift-*.yml) also pinmacos-15. Leaving them on macos-15 for now — they don't share the apple-metal transitive and have their own release cadence.Test plan
darwin-universaljob now passes, release publishes all 6 platform asset sets.Summary by CodeRabbit