All checks were successful
Docker Build & Push / build-and-push (push) Successful in 35s
60 lines
1.9 KiB
YAML
60 lines
1.9 KiB
YAML
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 <NODE-RED-IP> 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
|