Files
michaelschiemer/deployment/gitea-runner/ADD_PHP_CI_LABEL.md

2.8 KiB

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)

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

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:

cd deployment/gitea-runner
nano .env

Füge php-ci:docker://php-ci:latest zu GITEA_RUNNER_LABELS hinzu:

# 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:

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!

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:

  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

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