48 lines
1.7 KiB
YAML
48 lines
1.7 KiB
YAML
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
|