This page documents registering a self-hosted runner on your own Mac first. XenoCI appears only briefly below as a managed option when you need one. data_asof: 2026-10-01.
1. Register a self-hosted runner on your Mac
- Open the repo or org Settings → Actions → Runners → New self-hosted runner.
- Choose macOS, and ARM64 on Apple Silicon.
- Download the runner package and extract it into a folder, following the UI instructions.
- Register with
./config.sh --url <repo-or-org-URL> --token <token>using the token from that screen. - Start the listener with
./run.sh. If the Mac sleeps or logs out, jobs may not be picked up—keep power and the session available. To run as a service, follow GitHub Docs on configuring the self-hosted runner application as a service. - Install and update Xcode, simulators, signing certs, and dependencies on that Mac yourself. Disk is not wiped per job, so watch leftover secrets and artifacts.
2. Workflow runs-on example (your Mac)
Labels must match what the runner actually carries. Example using the common Apple Silicon defaults:
name: build
on: [push, workflow_dispatch]
jobs:
ios:
runs-on: [self-hosted, macOS, ARM64]
steps:
- uses: actions/checkout@v4
- run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 16' test3. Own Mac vs managed (facts table)
No speed benchmarks here. The table lists only facts checked against the public docs and rates.js. data_asof: 2026-10-01.
| Field | Self-hosted (your Mac) | XenoCI (managed) |
|---|---|---|
| Hardware | Your Mac (stay powered and online) | Apple Silicon M4, 4 vCPU · 8 GiB; fresh VM per job |
| runs-on | self-hosted (+ macOS, ARM64, …) | Only xenoci-macos |
| Xcode | Install and select on your Mac | Preinstalled on the image; pick with xcode-select / DEVELOPER_DIR |
| GitHub minute billing | No GitHub minutes for self-hosted | Same (treated as self-hosted) |
| Runner charge | No GitHub minutes (you pay for the Mac/power) | 1 credit = 1 M4 minute = KRW 100, per-second, no minimum |
| Free / purchased credits | N/A | 100 free credits/month (no rollover; GitHub account ≥30 days). Purchased/bonus credits valid 1 year from purchase; remainder then expires |
| GitHub-hosted list rate | Standard macOS $0.062/min | List KRW 100/min is higher than $0.062/min |
On a pure per-minute list price, XenoCI list price KRW 100 is not lower than GitHub-hosted standard macOS ($0.062/min). The differences are no monthly subscription, prepaid credits valid for 1 year from purchase, 100 free credits each month, per-second billing, and a fresh Apple Silicon M4 VM per job. (docs, changelog correction 2026-09-30, rates.js; data_asof 2026-10-01)
4. When you want managed: one XenoCI paragraph
If keeping a Mac online is hard or you want a fresh VM per job, install the XenoCI GitHub app and change runs-on to xenoci-macos. Connection steps are in GitHub Actions integration and getting started.
name: build
on: [push, workflow_dispatch]
jobs:
ios:
runs-on: xenoci-macos
steps:
- uses: actions/checkout@v4
- run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 16' test5. Read next
See GitHub Actions integration, getting started for credits and isolation, runner images overview for Xcode, and Compare with GitHub Actions plus the FAQ for minute billing.
FAQ
What runs-on labels do I use for a self-hosted runner?
Match the labels on the runner. GitHub often attaches self-hosted, macOS, and ARM64 (Apple Silicon); you can add custom labels at registration. Example: runs-on: [self-hosted, macOS, ARM64]. (GitHub Docs, data_asof 2026-10-01)
Are GitHub Actions minutes free on self-hosted runners?
GitHub does not bill minutes for self-hosted runners. Other GitHub fees, such as storage, follow GitHub’s policies. XenoCI is treated as a self-hosted runner. (/faq and /compare/github-actions, data_asof 2026-10-01)
What if I do not want to keep my own Mac online?
Use XenoCI as a managed option: install the XenoCI GitHub app and set runs-on to xenoci-macos. There is one label; pick Xcode inside the workflow with xcode-select or DEVELOPER_DIR. (/docs/getting-started and runner images, data_asof 2026-10-01)