Skip to content

ci(cd-rust-cua-driver): pin macOS build to macos-26 runner - #1733

Merged
f-trycua merged 1 commit into
mainfrom
ci/macos-26-runner
May 27, 2026
Merged

ci(cd-rust-cua-driver): pin macOS build to macos-26 runner#1733
f-trycua merged 1 commit into
mainfrom
ci/macos-26-runner

Conversation

@f-trycua

@f-trycua f-trycua commented May 27, 2026

Copy link
Copy Markdown
Collaborator

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.7 uses #available(macOS 26.0, *)-guarded Swift code that references symbols only present in the macOS 26 SDK. The macos-15 runner ships a macOS 15 SDK, so the Swift bridge fails to compile even though the code is gated by if #available.

screencapturekit = "6" was added in #1720 to ship the native ScreenCaptureKit recording backend.

Change

Single line: runs-on: macos-15runs-on: macos-26 in the build-macos-universal job, 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 pin macos-15. Leaving them on macos-15 for now — they don't share the apple-metal transitive and have their own release cadence.

Test plan

  • Workflow YAML still parses (no syntax changes beyond the runner label + comment)
  • After merge: re-trigger bump for cua-driver-rs (patch → v0.3.1) and confirm darwin-universal job now passes, release publishes all 6 platform asset sets.

Summary by CodeRabbit

  • Chores
    • Updated macOS build environment from macOS 15 to macOS 26 for the universal binary build.

Review Change Stack

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.
@vercel

vercel Bot commented May 27, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Ignored Ignored Preview May 27, 2026 2:19pm

Request Review

@coderabbitai

coderabbitai Bot commented May 27, 2026

Copy link
Copy Markdown
Contributor

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e1e156c6-9598-41e8-9b16-595fb5f2457d

📥 Commits

Reviewing files that changed from the base of the PR and between 38817f1 and 18997fa.

📒 Files selected for processing (1)
  • .github/workflows/cd-rust-cua-driver.yml

📝 Walkthrough

Walkthrough

GitHub Actions workflow configuration updated to upgrade the macOS universal build job runner from macos-15 to macos-26. Comments clarify that macOS 26 is required for ScreenCaptureKit Swift bridge symbol availability.

Changes

macOS Runner Configuration

Layer / File(s) Summary
macOS 26 runner and SDK documentation
.github/workflows/cd-rust-cua-driver.yml
Runner version updated from macos-15 to macos-26 with expanded comments explaining the dependency on macOS 26 SDK for ScreenCaptureKit Swift bridge symbols.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🐰 A runner jumps from fifteen to twenty-six,
For ScreenCaptureKit, a macOS fix,
Swift symbols flow from the newer SDK's ground,
Where universal builds find their macOS sound! 🍎

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: updating the macOS build runner to macos-26, which directly addresses the core issue (dependency on macOS 26 SDK symbols).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/macos-26-runner

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 and usage tips.

@f-trycua
f-trycua merged commit 356a668 into main May 27, 2026
4 of 5 checks passed
@f-trycua
f-trycua deleted the ci/macos-26-runner branch May 27, 2026 14:20
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