CI / GitHub Actions
Workflow: .github/workflows/build.yml
Jobs
| Job | What it does | Runner |
|---|---|---|
| build-shared | swift build && swift test (398 tests) | self-hosted macOS |
| build-ios | xcodebuild build (no code signing) | self-hosted macOS |
UI tests are not yet part of CI (run locally via ./scripts/run-uitests.sh).
Self-hosted runner
Runs on the development Mac as a launchd service. Setup lives in the hogen monorepo: ../hogen/gh-mac-runner.
Runner labels: self-hosted, macOS, X64
Why self-hosted
GitHub-hosted macOS runners cost $0.08/min with a 10x multiplier on the free tier (2000 min/month = effectively 200 macOS minutes). A single build uses ~50 billed minutes, so the free tier covers ~4 builds/month. Self-hosted is free with no limits.
Management
~/actions-runner/svc.sh status # check
~/actions-runner/svc.sh stop # stop
~/actions-runner/svc.sh start # start Workflow file
runs-on: [self-hosted, macOS, X64] No xcode-select step needed — uses whatever Xcode is installed on the runner Mac.