name: Host-Based Deploy (Java 21 Fix)
on:
  push:
    branches:
      - master

jobs:
  build-and-run:
    # WICHTIG: Hier nutzen wir das neue Host-Label
    runs-on: pve-host
    steps:
      - name: Checkout Code
        run: |
          # Debug: Wer ist git.langhei.de?
          cat /etc/hosts
          ping -c 1 git.langhei.de || echo "Ping failed"
          
          # Sicherstellen, dass wir im richtigen Verzeichnis sind
          rm -rf ./* || true
          
          # Versuch über die Domain
          git clone http://git.langhei.de/Entwicklung/xxx-sphere-web.git . || \
          # FALLBACK: Versuch über die IP direkt, falls DNS im Container hakt
          git clone http://192.168.178.93:3000/Entwicklung/xxx-sphere-web.git .
          
          git config --global http.sslVerify false
          git checkout master

      - name: Build and Deploy (LXC-Safe)
        run: |
          # 1. Java 21 im Runner-Container installieren
          if command -v apt-get >/dev/null; then
            apt-get update && apt-get install -y openjdk-21-jdk-headless
          elif command -v apk >/dev/null; then
            apk add --no-cache openjdk21
          fi

          # 2. JAVA_HOME setzen
          export JAVA_HOME=$(java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' | awk '{print $3}')
          export PATH=$JAVA_HOME/bin:$PATH

          # 3. Das JAR-File bauen (Hier brauchen wir noch kein Docker!)
          chmod +x gradlew
          ./gradlew bootJar

          # 4. Docker-Socket Berechtigung (für den finalen Build)
          chmod 666 /var/run/docker.sock

          # 5. Das Image klassisch bauen
          # Wir suchen das gebaute JAR und bauen das Image
          docker build -t xxx-sphere-web:latest .

          # 6. Container starten
          # Wir nutzen 'docker-compose' (mit Bindestrich) oder den Standard-Docker-Befehl
          if command -v docker-compose >/dev/null; then
            docker-compose up -d --force-recreate
          else
            # Fallback, falls compose fehlt: Alten Container stoppen und neu starten
            docker stop xxx-sphere-web || true
            docker rm xxx-sphere-web || true
            docker run -d --name xxx-sphere-web -p 8080:8080 xxx-sphere-web:latest
          fi

      - name: Deploy Container
        run: |
          docker compose up -d --force-recreate
