From ec21aa2b9e3011c0626b15635e607623f6887976 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" Date: Tue, 2 Jun 2026 15:58:56 +0000 Subject: [PATCH] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index c5ab766..8b41136 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -125,6 +125,7 @@ jobs: ARGS_HASH=${{ steps.prep.outputs.build_args_hash }} BASE=${{ steps.prep.outputs.base_image }} REPO_PURE=${{ steps.prep.outputs.repo_pure }} + DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE" set -a source <(grep -v '^#' buildargs.env | sed 's/\r$//') @@ -138,14 +139,26 @@ jobs: BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") - docker buildx build "${DOCKER_ARGS[@]}" -t "$IMAGE_GITEA:tmp-amd64" \ + # Bereite die Tags für den initialen Build vor (Gitea immer, Docker Hub optional) + AMD_TAGS=("-t" "$IMAGE_GITEA:tmp-amd64") + ARM_TAGS=("-t" "$IMAGE_GITEA:tmp-arm64") + + if [[ "$PUSH" == *"dockerhub"* ]]; then + AMD_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-amd64") + ARM_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-arm64") + fi + + # Build AMD64 & Push zu allen Zielen + docker buildx build "${DOCKER_ARGS[@]}" "${AMD_TAGS[@]}" \ --pull --platform linux/amd64 -f Dockerfile \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . - docker buildx build "${DOCKER_ARGS[@]}" -t "$IMAGE_GITEA:tmp-arm64" \ + # Build ARM64 & Push zu allen Zielen + docker buildx build "${DOCKER_ARGS[@]}" "${ARM_TAGS[@]}" \ --pull --platform linux/arm64 -f Dockerfile.aarch64 \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . + # 1. Manifest auf Gitea erstellen (aus Gitea Temp-Tags) GITEA_MANIFEST_TAGS=("-t" "$IMAGE_GITEA:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then GITEA_MANIFEST_TAGS+=("-t" "$IMAGE_GITEA:latest") @@ -155,16 +168,17 @@ jobs: --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ "${GITEA_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + # 2. Manifest auf Docker Hub erstellen (aus Docker Hub Temp-Tags!) if [[ "$PUSH" == *"dockerhub"* ]]; then - DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE" DH_MANIFEST_TAGS=("-t" "$DOCKERHUB_REPO:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then DH_MANIFEST_TAGS+=("-t" "$DOCKERHUB_REPO:latest") fi + # WICHTIG: Hier werden jetzt als Quelle die Docker Hub Temp-Tags genutzt! docker buildx imagetools create \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ - "${DH_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + "${DH_MANIFEST_TAGS[@]}" $DOCKERHUB_REPO:tmp-amd64 $DOCKERHUB_REPO:tmp-arm64 fi - name: Update Documentation and Compose