GitHub Actions runners
Run your GitHub Actions macOS jobs on MacOps. Each job gets a brand-new, isolated macOS VM that registers as an ephemeral self-hosted runner, runs exactly one job, and is destroyed — nothing leaks between runs.
Target the runners
jobs:
build:
runs-on: [self-hosted, macops]
steps:
- uses: actions/checkout@v4
- run: xcodebuild -scheme MyApp -destination 'generic/platform=iOS Simulator' build
When a job with these labels is queued, MacOps provisions a runner, it picks up the one job, and the VM is torn down on completion.
How it works
- GitHub sends a signed
workflow_jobevent to MacOps. - MacOps mints a short-lived runner registration token from your GitHub App installation.
- A fresh macOS VM boots, registers as an
--ephemeralself-hosted runner with themacopslabel, and runs your job. - The VM (and everything in it) is destroyed afterwards.
Concurrency by plan
- Pro — up to 3 concurrent runner jobs.
- Team — up to 10 concurrent runner jobs.
GitHub runners are available on the Pro and Team plans.