name: Docker Build & Push
run-name: ${{ gitea.actor }} zwingt es zum Laufen 🔨

on:
  push:
    branches:
      - main
      - master

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      # -----------------------------------------------------------
      # 1. DER NETZWERK-RETTER (MUSS WIEDER REIN!)
      # Ersetzt "gitea:3000" durch die IP, damit der Container es findet.
      # -----------------------------------------------------------
      - name: Fix Git URL Resolution
        run: git config --global url."http://172.30.1.213/".insteadOf "http://gitea:3000/"

      # 2. Checkout (Klappt jetzt, weil URL umgebogen wird)
      - name: Checkout Code
        uses: actions/checkout@v3

      # 3. Login (Mit dem globalen Token aus deinen User-Settings)
      - name: Login bei Registry
        run: docker login 172.30.1.213 -u ${{ gitea.actor }} -p ${{ secrets.TOKEN_RUNNER }}

      # 4. Feuer frei
      - name: Build & Push
        run: |
          REPO_LOWER=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]')
          IMAGE_TAG="172.30.1.213/$REPO_LOWER:latest"
          
          echo "Baue Image: $IMAGE_TAG"
          
          docker build -t $IMAGE_TAG .
          docker push $IMAGE_TAG
          
      - name: Webhook an Node-RED
        if: always()
        run: |
          # Status setzen
          if [ "${{ job.status }}" == "success" ]; then
            STATUS="success"
          else
            STATUS="failed"
          fi
          
          # JSON Payload basteln
          # Wir nutzen printf, um sauberes JSON zu bauen
          JSON_DATA=$(printf '{"status": "%s", "repo": "%s", "actor": "%s"}' "$STATUS" "${{ gitea.repository }}" "${{ gitea.actor }}")
          
          # Abfeuern an Node-RED
          curl -v -H "Content-Type: application/json" \
               -X POST \
               -d "$JSON_DATA" \
               http://172.30.80.246:1880/gitea-status