# php-ci Label zum Runner hinzufügen ## Problem Workflows mit `runs-on: php-ci` können nicht ausgeführt werden, wenn der Runner dieses Label nicht kennt. ## Lösung ### Schritt 1: php-ci Image verfügbar machen **Option A: Image in Registry pushen (empfohlen für Production)** ```bash cd deployment/gitea-runner ./build-ci-image.sh # Login zur Registry docker login registry.michaelschiemer.de -u admin # Image zur Registry pushen docker tag php-ci:latest registry.michaelschiemer.de/ci/php-ci:latest docker push registry.michaelschiemer.de/ci/php-ci:latest ``` **Option B: Image lokal in docker-dind laden** ```bash cd deployment/gitea-runner # Stelle sicher dass docker-dind läuft docker compose up -d docker-dind # Image bauen ./build-ci-image.sh # Image in docker-dind laden docker save php-ci:latest | docker exec -i gitea-runner-dind docker load ``` ### Schritt 2: Label zu .env hinzufügen **Wenn .env existiert:** ```bash cd deployment/gitea-runner nano .env ``` Füge `php-ci:docker://php-ci:latest` zu `GITEA_RUNNER_LABELS` hinzu: ```bash # Für lokales Image: GITEA_RUNNER_LABELS=ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,php-ci:docker://php-ci:latest # Für Registry Image (empfohlen): GITEA_RUNNER_LABELS=ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,php-ci:docker://registry.michaelschiemer.de/ci/php-ci:latest ``` **Wenn .env nicht existiert:** ```bash cd deployment/gitea-runner cp .env.example .env # Dann .env bearbeiten und php-ci Label sicherstellen (ist schon im Beispiel enthalten) ``` ### Schritt 3: Runner neu registrieren ⚠️ **WICHTIG:** Labels können nur bei der Registration geändert werden! ```bash cd deployment/gitea-runner # Runner unregistrieren ./unregister.sh # Runner mit neuen Labels neu registrieren ./register.sh ``` ### Schritt 4: Verifikation 1. **In Gitea UI prüfen:** - Gehe zu: https://git.michaelschiemer.de/admin/actions/runners - Runner sollte jetzt das `php-ci` Label zeigen 2. **Workflow testen:** - Ein Workflow mit `runs-on: php-ci` sollte jetzt funktionieren ## Troubleshooting **Runner zeigt php-ci Label nicht:** - Runner muss neu registriert werden (Labels können nicht dynamisch geändert werden) - Prüfe ob Image verfügbar ist: `docker exec gitea-runner-dind docker images | grep php-ci` **Workflow findet keinen Runner:** - Prüfe ob Runner das Label hat (Gitea UI) - Prüfe ob Image verfügbar ist (für lokales Image: in docker-dind) ## Schnellstart ```bash cd deployment/gitea-runner # 1. Image bauen und in docker-dind laden ./build-ci-image.sh docker save php-ci:latest | docker exec -i gitea-runner-dind docker load # 2. .env prüfen/anpassen nano .env # Sicherstellen dass php-ci:docker://php-ci:latest in GITEA_RUNNER_LABELS ist # 3. Runner neu registrieren ./unregister.sh ./register.sh ```