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 # Ersetze mit der IP deines Node-RED (intern reicht!) curl -v -H "Content-Type: application/json" \ -X POST \ -d "$JSON_DATA" \ http://172.30.80.246:1880/gitea-status