mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 22:01:09 +02:00
Adds a GitHub Actions workflow that detects changed services on push to main and automatically rebuilds/restarts only the affected Docker containers on the Mac Mini. Includes setup guide for the self-hosted runner. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
GitHub Actions Self-Hosted Runner auf dem Mac Mini einrichten
Diese Anleitung auf dem Mac Mini ausführen.
1. Runner-Token holen
- Gehe zu: https://github.com/Memo-2023/manacore-monorepo/settings/actions/runners/new
- Wähle macOS und ARM64
- Kopiere den Token aus dem
--tokenParameter (sieht so aus:AXXXX...)
2. Runner installieren
# Verzeichnis erstellen
mkdir -p ~/actions-runner && cd ~/actions-runner
# Runner herunterladen (ARM64 macOS)
curl -o actions-runner.tar.gz -L https://github.com/actions/runner/releases/latest/download/actions-runner-osx-arm64-2.322.0.tar.gz
# Entpacken
tar xzf actions-runner.tar.gz
# Konfigurieren (Token von Schritt 1 einsetzen)
./config.sh --url https://github.com/Memo-2023/manacore-monorepo --token DEIN_TOKEN_HIER
# Bei den Prompts:
# Runner group: [Enter] (default)
# Runner name: mac-mini
# Labels: [Enter] (default: self-hosted,macOS,ARM64)
# Work folder: [Enter] (default: _work)
3. Als LaunchAgent einrichten (Autostart)
# Installiert den LaunchAgent automatisch
cd ~/actions-runner
./svc.sh install
# Starten
./svc.sh start
# Status prüfen
./svc.sh status
4. Prüfen ob es läuft
# Lokal prüfen
./svc.sh status
# Oder im Browser:
# https://github.com/Memo-2023/manacore-monorepo/settings/actions/runners
# → Runner "mac-mini" sollte als "Idle" angezeigt werden
5. Docker-Zugriff sicherstellen
Der Runner braucht Zugriff auf Docker:
# Prüfen ob Docker läuft
docker info
# Prüfen ob docker compose funktioniert
docker compose version
# Prüfen ob das Projekt-Verzeichnis existiert
ls ~/projects/manacore-monorepo/docker-compose.macmini.yml
6. Test-Deployment auslösen
Entweder:
- Push auf
mainmachen (deployt automatisch geänderte Services) - Oder manuell: https://github.com/Memo-2023/manacore-monorepo/actions/workflows/cd-macmini.yml → "Run workflow" → Service wählen
Fehlerbehebung
Runner ist offline
cd ~/actions-runner
./svc.sh status
./svc.sh stop
./svc.sh start
Runner-Token abgelaufen
cd ~/actions-runner
./svc.sh stop
./config.sh remove --token ALTES_TOKEN
# Neuen Token holen (siehe Schritt 1)
./config.sh --url https://github.com/Memo-2023/manacore-monorepo --token NEUES_TOKEN
./svc.sh start
Logs ansehen
# Runner-Logs
tail -f ~/actions-runner/_diag/Runner_*.log
# Workflow-Logs: im GitHub UI unter Actions-Tab
Was passiert nach dem Setup?
Bei jedem Push auf main:
- Der Runner erkennt welche Services sich geändert haben
- Pullt den neuesten Code (
git pull) - Baut nur die geänderten Docker-Container neu (
docker compose up -d --build <service>) - Führt Health Checks durch
- Ergebnis ist im GitHub Actions-Tab sichtbar
Manuelle Deploys sind jederzeit möglich über den "Run workflow" Button im Actions-Tab.