diff --git a/.gitea/workflows/build-push.yaml b/.gitea/workflows/build-push.yaml new file mode 100644 index 0000000..9118618 --- /dev/null +++ b/.gitea/workflows/build-push.yaml @@ -0,0 +1,59 @@ +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