From 73a6ca5177e169130432f0bf7fc50756da29fdf6 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" Date: Thu, 2 Apr 2026 14:14:47 +0000 Subject: [PATCH] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 2bf286d..7351697 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -129,32 +129,37 @@ jobs: BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") - AMD_TAGS=("-t" "$IMAGE_GITEA:tmp-amd64") - ARM_TAGS=("-t" "$IMAGE_GITEA:tmp-arm64") - - if [[ "$PUSH" == *"dockerhub"* ]]; then - DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE" - AMD_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-amd64") - ARM_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-arm64") - fi - - docker buildx build "${DOCKER_ARGS[@]}" "${AMD_TAGS[@]}" \ + # 1. Architektur-spezifische Builds pushen + docker buildx build "${DOCKER_ARGS[@]}" -t "$IMAGE_GITEA:tmp-amd64" \ --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[@]}" "${ARM_TAGS[@]}" \ + docker buildx build "${DOCKER_ARGS[@]}" -t "$IMAGE_GITEA:tmp-arm64" \ --pull --platform linux/arm64 -f Dockerfile.aarch64 \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . + # 2. Multi-Arch Manifest für Gitea erstellen + # Wir bauen ein Array für die Tags + GITEA_MANIFEST_TAGS=("-t" "$IMAGE_GITEA:$TAG") + if [[ "$BUILD_TAG_LATEST" == "y" ]]; then + GITEA_MANIFEST_TAGS+=("-t" "$IMAGE_GITEA:latest") + fi + docker buildx imagetools create \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ - -t $IMAGE_GITEA:$TAG -t $IMAGE_GITEA:latest $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + "${GITEA_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + # 3. Multi-Arch Manifest für Docker Hub (optional) 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 + docker buildx imagetools create \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ - -t $DOCKERHUB_REPO:$TAG -t $DOCKERHUB_REPO:latest $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + "${DH_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 fi - name: Update Documentation and Compose