.gitea/workflows/build-and-push.yaml aktualisiert
All checks were successful
/ release-and-build (push) Successful in 18m35s

This commit is contained in:
2026-06-02 15:58:56 +00:00
parent b27c3e257b
commit ec21aa2b9e

View File

@@ -125,6 +125,7 @@ jobs:
ARGS_HASH=${{ steps.prep.outputs.build_args_hash }} ARGS_HASH=${{ steps.prep.outputs.build_args_hash }}
BASE=${{ steps.prep.outputs.base_image }} BASE=${{ steps.prep.outputs.base_image }}
REPO_PURE=${{ steps.prep.outputs.repo_pure }} REPO_PURE=${{ steps.prep.outputs.repo_pure }}
DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE"
set -a set -a
source <(grep -v '^#' buildargs.env | sed 's/\r$//') 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") 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 \ --pull --platform linux/amd64 -f Dockerfile \
--label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . --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 \ --pull --platform linux/arm64 -f Dockerfile.aarch64 \
--label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . --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") GITEA_MANIFEST_TAGS=("-t" "$IMAGE_GITEA:$TAG")
if [[ "$BUILD_TAG_LATEST" == "y" ]]; then if [[ "$BUILD_TAG_LATEST" == "y" ]]; then
GITEA_MANIFEST_TAGS+=("-t" "$IMAGE_GITEA:latest") 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" \ --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 "${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 if [[ "$PUSH" == *"dockerhub"* ]]; then
DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE"
DH_MANIFEST_TAGS=("-t" "$DOCKERHUB_REPO:$TAG") DH_MANIFEST_TAGS=("-t" "$DOCKERHUB_REPO:$TAG")
if [[ "$BUILD_TAG_LATEST" == "y" ]]; then if [[ "$BUILD_TAG_LATEST" == "y" ]]; then
DH_MANIFEST_TAGS+=("-t" "$DOCKERHUB_REPO:latest") DH_MANIFEST_TAGS+=("-t" "$DOCKERHUB_REPO:latest")
fi fi
# WICHTIG: Hier werden jetzt als Quelle die Docker Hub Temp-Tags genutzt!
docker buildx imagetools create \ docker buildx imagetools create \
--annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ --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 fi
- name: Update Documentation and Compose - name: Update Documentation and Compose