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

  1. GitHub sends a signed workflow_job event to MacOps.
  2. MacOps mints a short-lived runner registration token from your GitHub App installation.
  3. A fresh macOS VM boots, registers as an --ephemeral self-hosted runner with the macops label, and runs your job.
  4. 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.