Docs · GitHub Actions

GitHub Actions on NoMac

Your GitHub Actions jobs on a fresh Mac with Xcode: change runs-on to nomac.

Connect GitHub

Sign in at nomac.app, open CI and press Connect GitHub. It installs the NoMac CI app on your account or organization, on every repository or the ones you pick. You need some credit.

Change one line

Terminal
jobs:
  build:
    runs-on: nomac
    steps:
      - uses: actions/checkout@v5
      - run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=27.0' test | xcbeautify

Each job gets its own Mac. The CI page lists every job with its minutes and cost.

What you get

The machine
A fresh macOS VM for every job, deleted when the job ends: 6 cores and 8 GB of an Apple silicon Mac mini (M4 to M6).
Installed
macOS 26.6.2, Xcode 27.0, iOS 27.0 Simulator; Node 24.20.0, npm 11.19.0, Ruby 3.4.11, Bundler 4.0.23, CocoaPods 1.17.0, xcbeautify 3.2.1, XcodeGen 2.46.0, Git 2.54.0, Git LFS 3.8.0, GitHub CLI 2.100.0, jq 1.7.1, Python 3.14.7, uv 0.13.0, simulator-use 0.15.1, nvm 0.40.8, Swift 6.4, Homebrew 7.0.11.
Price
1.5¢ a minute ($0.90 an hour) from your NoMac credit, billed per minute from the Mac's start to its stop, a minute at least. No subscription. A Mac that ran no job is credited back.
Jobs at once
2 per account; a job waits in GitHub's queue for a free one. Ask for more.
Longest job
6 hours, as on GitHub's own runners.
Out of credit
Jobs wait in GitHub's queue and start once you buy credit (GitHub cancels a job queued for 24 hours).

Secrets and safety

A CI Mac runs only the job: it gets the job's secrets from GitHub, and none of your NoMac secrets, signing files or drive. Nothing else reaches it, including your NoMac API keys, and it is deleted when the job ends.