C.W.K.
Stream
Lesson 05 of 13 · published

macOS Runners (and Apple Silicon)

~10 min · macos, apple-silicon, self-hosted

Level 0Apprentice
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

The most expensive runner type — and sometimes the only option

iOS / macOS native code, MLX, signing, and notarization need macOS. Hosted macOS runners cost 10× Linux. Self-hosted on a Mac mini or office Mac is the only way to stay sane on volume.

Hosted vs self-hosted macOS

HostedSelf-hosted
Cost10× Linux/minHardware + electricity
Apple SiliconYes (newer images)Whatever Mac you have
MLXYes on M-series imagesYes
Code signingNeed to upload cert + provisioningCert in Keychain on the Mac
ReliabilityNetwork-dependent; queueingUp to your maintenance

Self-hosted macOS gotchas

  • The runner agent runs as a launch agent. Sleeping Mac = no jobs. Disable sleep on the runner machine.
  • Path differs from Linux — Homebrew is at /opt/homebrew (Apple Silicon) vs /usr/local (Intel). Workflows must handle both.
  • Code-signing keys live in the user's Keychain — runner needs to be the same user.
  • Xcode versions matter. Pin via maxim-lobanov/setup-xcode or managed at the runner level.

Code

iOS build with code signing·yaml
  ios-build:
    runs-on: [self-hosted, macos, apple-silicon]
    steps:
      - uses: actions/checkout@v4
      - name: Setup Xcode
        uses: maxim-lobanov/setup-xcode@v1
        with: { xcode-version: '16.2' }
      - name: Decode signing cert
        env:
          CERT_BASE64: ${{ secrets.IOS_CERT_BASE64 }}
          CERT_PASSWORD: ${{ secrets.IOS_CERT_PASSWORD }}
        run: |
          echo "$CERT_BASE64" | base64 --decode > cert.p12
          security create-keychain -p ci ci.keychain
          security import cert.p12 -k ci.keychain -P "$CERT_PASSWORD"
          security list-keychains -s ci.keychain
      - run: xcodebuild -scheme MyApp -archivePath out.xcarchive archive

External links

Exercise

If you have any iOS / macOS work, audit how it's currently running. Hosted? Self-hosted? Calculate the monthly cost vs the cost of a Mac mini for self-hosting. The answer often surprises.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.