Anleitung
Self-hosted GitHub Actions Runner auf dem Mac mini
Richten Sie einen Self-hosted GitHub Actions Runner auf einem dedizierten Mac mini ein. Xcode installieren, den Runner registrieren, als Dienst betreiben und Builds schnell und privat halten.
30 Minuten, aktualisiert 2026-09-15
Die gehosteten macOS-Runner von GitHub sind geteilte Maschinen. Zu Stoßzeiten landen sie in der Warteschlange, starten jedes Mal kalt und werden minutengenau abgerechnet.
Ein Self-hosted Runner auf Ihrem eigenen Mac mini startet sofort, behält seine Caches zwischen den Builds und kostet jeden Monat gleich viel.
Diese Anleitung dauert etwa dreißig Minuten. Sie brauchen:
- Einen Mac mini mit Apple silicon und SSH-Zugang
- Admin-Rechte für das GitHub-Repository oder die Organisation
- Eine Apple ID, um Xcode herunterzuladen
1. Den Mac vorbereiten
Melden Sie sich per SSH an und verhindern Sie den Ruhezustand des Macs:
sudo pmset -a sleep 0 disksleep 0 displaysleep 0Installieren Sie Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Wir empfehlen einen eigenen Benutzer für den Runner, damit Builds nie unter Ihrem Admin-Konto laufen:
sudo sysadminctl -addUser runner -fullName "CI Runner" -password -Melden Sie sich für die folgenden Schritte als dieser Benutzer an.
2. Xcode installieren
Am einfachsten geht es per SSH mit `xcodes`:
brew install xcodesorg/made/xcodes
xcodes install --latest
xcodes selectAkzeptieren Sie die Lizenz und schließen Sie den ersten Start ab:
sudo xcodebuild -license accept
xcodebuild -runFirstLaunch
xcodebuild -downloadPlatform iOS3. Den Runner registrieren
Öffnen Sie in GitHub Ihr Repository, dann Settings, Actions, Runners, New self-hosted runner. Wählen Sie macOS und ARM64.
GitHub zeigt die genauen Befehle mit der aktuellen Version und einem Token. Die Befehle sehen so aus:
mkdir actions-runner && cd actions-runner
curl -o actions-runner-osx-arm64.tar.gz -L <download URL from GitHub>
tar xzf ./actions-runner-osx-arm64.tar.gz
./config.sh --url https://github.com/<owner>/<repo> --token <token>Das Token läuft nach einer Stunde ab, registrieren Sie den Runner also sofort. Wenn `config.sh` nach Labels fragt, vergeben Sie solche, die Sie in Workflows nutzen werden, etwa `xcode` oder `m4`.
4. Als Dienst betreiben
./svc.sh install
./svc.sh start
./svc.sh statusDer Runner startet jetzt mit der Benutzersitzung. Wenn Ihre Jobs UI-Tests ausführen oder den Anmeldeschlüsselbund brauchen, aktivieren Sie die automatische Anmeldung für den Runner-Benutzer unter Systemeinstellungen, Benutzer:innen & Gruppen. Das geht über die Bildschirmfreigabe. Solange FileVault aktiv ist, steht die automatische Anmeldung nicht zur Verfügung.
5. In einem Workflow nutzen
name: iOS build
on: [push]
jobs:
build:
runs-on: [self-hosted, macOS, ARM64]
steps:
- uses: actions/checkout@v4
- name: Build
run: xcodebuild -scheme MyApp -destination 'generic/platform=iOS Simulator' buildPushen Sie einen Commit. Der Job erscheint unter Actions und startet innerhalb von Sekunden auf Ihrem Mac.
6. In gutem Zustand halten
- Nur private Repositories. In einem öffentlichen Repository kann ein Pull Request aus einem Fork Code auf Ihrem Mac ausführen. GitHub rät von Self-hosted Runnern in öffentlichen Repos ab.
- Räumen Sie ab und zu auf. DerivedData und alte Simulatoren wachsen mit der Zeit:
rm -rf ~/Library/Developer/Xcode/DerivedData
xcrun simctl delete unavailable- Signierung. Bewahren Sie Zertifikate in einem eigenen Schlüsselbund auf oder nutzen Sie fastlane match.
- Updates. Der Runner aktualisiert sich standardmäßig selbst. Aktualisieren Sie Xcode nach Ihrem eigenen Zeitplan, nicht mitten in einem Release.
Warum ein dedizierter Mac mini
- Niemand sonst darauf. Builds starten, sobald Sie pushen.
- Warme Caches. DerivedData, Swift-Pakete und CocoaPods bleiben auf der Platte, inkrementelle Builds sind dadurch deutlich schneller.
- Echte Chips. Testen Sie auf demselben Apple silicon, das Ihre Nutzer haben.
- Ein fester Monatspreis. Keine minutengenaue Abrechnung, keine Überraschung am Ende eines vollen Sprints.
MacDuty betreibt eigene Mac minis von M1 bis M6 in Racks in der EU, mit installiertem macOS. Ihren SSH-Schlüssel fügen Sie im Kundenbereich hinzu.
Heute auf Lager
Diese stehen jetzt im Rack. Wählen Sie einen, sehen Sie, was dazugehört, und legen Sie Ihr Konto erst bei der Bestellung an.
Racks werden geprüft
Ein eigener Mac mini
Wählen Sie eine Konfiguration. Wenn eine nicht vorrätig ist, hinterlassen Sie Ihre E-Mail, und wir schreiben Ihnen an dem Tag, an dem sie ins Rack kommt.
Jährlich: mindestens 19 % günstiger als monatlich
Als Nächstes