reorder workflow
All checks were successful
/ release-and-build (push) Successful in 1m0s

This commit is contained in:
2026-02-14 00:46:54 +01:00
parent f27bd5e0fe
commit 61db410e2d

View File

@@ -312,24 +312,43 @@ jobs:
echo "DESCRIPTION<<EOF" >> $GITHUB_ENV
echo -e "$DESCRIPTION" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Push README to Docker Hub
# WICHTIG: Verwende jetzt outputs.push_targets statt env.PUSH
if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub')
run: |
# Tool Check & Install
if ! command -v jq &> /dev/null; then
echo "Installing jq..."
(apt-get update && apt-get install -y jq) || (apk add --no-cache jq) || echo "Could not install jq"
fi
# Token holen
TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \
-H "Content-Type: application/json" \
-d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token)
if [ "$TOKEN" != "null" ]; then
if [ "$TOKEN" != "null" ] && [ -n "$TOKEN" ]; then
REPO_PURE=${{ steps.prep.outputs.repo_pure }}
DH_USER="${{ secrets.DOCKERHUB_USERNAME }}"
# Kurzbeschreibung sicher für JSON formatieren
SHORT_DESC=$(echo -e "${{ env.DESCRIPTION }}" | head -n 1 | cut -c 1-100)
echo "📤 Übertrage README und Metadata zu Docker Hub..."
# Wir nutzen jq, um das gesamte JSON-Objekt sicher zu bauen (verhindert Quotes-Fehler)
JSON_PAYLOAD=$(jq -n \
--arg desc "$SHORT_DESC" \
--arg full_desc "$(cat README.md)" \
'{description: $desc, full_description: $full_desc}')
curl -s -X PATCH "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/" \
-H "Authorization: JWT ${TOKEN}" \
-H "Content-Type: application/json" \
-d "{ \"description\": \"${SHORT_DESC}\", \"full_description\": $(jq -Rs . < README.md) }"
-d "$JSON_PAYLOAD"
echo "✅ Docker Hub erfolgreich aktualisiert."
else
echo "❌ Docker Hub Login fehlgeschlagen (Token ist leer)."
exit 1
fi
- name: Commit, Tag and Push Changes
@@ -344,22 +363,30 @@ jobs:
git push -f origin "v${{ steps.prep.outputs.docker_tag }}"
- name: Cleanup Temporary Tags on Docker Hub
# WICHTIG: Verwende jetzt outputs.push_targets
if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub')
run: |
if ! command -v jq &> /dev/null; then
(apt-get update && apt-get install -y jq) || (apk add --no-cache jq) || true
fi
echo "🧹 Aufräumen temporärer Docker Hub Tags..."
TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \
-H "Content-Type: application/json" \
-d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token)
if [ "$TOKEN" != "null" ]; then
if [ "$TOKEN" != "null" ] && [ -n "$TOKEN" ]; then
REPO_PURE=${{ steps.prep.outputs.repo_pure }}
DH_USER="${{ secrets.DOCKERHUB_USERNAME }}"
for t in tmp-amd64 tmp-arm64; do
curl -s -X DELETE "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/tags/$t/" \
-H "Authorization: JWT ${TOKEN}"
echo "Tag $t bereinigt."
echo "Lösche Tag $t..."
STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE \
"https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/tags/$t/" \
-H "Authorization: JWT ${TOKEN}")
echo "Status: $STATUS"
done
echo "✅ Temporäre Tags entfernt."
fi
- name: Cleanup Temporary Registry Tags (Gitea)