name: Docker Build & Push
run-name: ${{ gitea.actor }} flucht, aber baut 🔨
on:
  push:
    branches:
      - main
      - master

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      # 1. DER FIX (Mit dem automatischen Gitea-Token)
      # ${{ gitea.token }} hat IMMER Zugriff auf das Repo, in dem der Job läuft.
      - name: Fix Git URL Resolution
        run: git config --global url."http://${{ gitea.token }}@172.30.1.213/".insteadOf "http://gitea:3000/"

      # 2. Checkout
      - name: Checkout Code
        uses: actions/checkout@v3

      # 3. Docker Login (Hier nehmen wir weiterhin deinen Runner-Token oder den Actor)
      # Wenn der Login fehlschlägt, dann hat dein User keine Schreibrechte auf Packages.
      # Aber probier erst mal Checkout.
      - name: Login bei Registry
        run: docker login 172.30.1.213 -u ${{ gitea.actor }} -p ${{ secrets.TOKEN_RUNNER }}

      # 4. Bauen
      - 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
      
      # 5. Node-RED
      - name: Webhook an Node-RED
        if: always()
        run: |
          if [ "${{ job.status }}" == "success" ]; then
            STATUS="success"
          else
            STATUS="failed"
          fi
          JSON_DATA=$(printf '{"status": "%s", "repo": "%s", "actor": "%s"}' "$STATUS" "${{ gitea.repository }}" "${{ gitea.actor }}")
          curl -v -H "Content-Type: application/json" -X POST -d "$JSON_DATA" http://172.30.80.246:1880/gitea-status
