File tree Expand file tree Collapse file tree 2 files changed +39
-22
lines changed
Expand file tree Collapse file tree 2 files changed +39
-22
lines changed Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ set -euo pipefail
4+
5+ get_digest () {
6+ local variant=" $1 "
7+ local arch=" $2 "
8+ find " /tmp/digests/digests-${variant} -${arch} " -type f -exec basename {} \;
9+ }
10+
11+ create_manifest_list () {
12+ local namespace=" $1 "
13+ local variant=" $2 "
14+ local digest_amd64=" $3 "
15+ local digest_arm64=" $4 "
16+
17+ docker buildx imagetools create \
18+ " $( jq -cr " .target.\" docker-metadata-action\" .tags | map(select(startswith(\" ${namespace} \" )) | \" -t \" + .) | join(\" \" )" " /tmp/bake-meta-${variant} -amd64.json" ) " \
19+ " ${namespace} @sha256:${digest_amd64} " \
20+ " ${namespace} @sha256:${digest_arm64} "
21+ }
22+
23+ # Get list of unique variants
24+ mapfile -t variants < <( find . -maxdepth 1 -name " bake-meta-*.json" -exec basename {} \; | sed -E ' s/bake-meta-//; s/-amd64.json|-arm64.json//g' | sort -u)
25+
26+ for variant in " ${variants[@]} " ; do
27+ echo " Processing variant: $variant "
28+
29+ # Fetch digests for amd64 and arm64 architectures
30+ digest_amd64=$( get_digest " $variant " " amd64" )
31+ digest_arm64=$( get_digest " $variant " " arm64" )
32+ echo " Digest AMD64: $digest_amd64 "
33+ echo " Digest ARM64: $digest_arm64 "
34+
35+ create_manifest_list " ${DOCKER_NAMESPACE} " " $variant " " $digest_amd64 " " $digest_arm64 "
36+ create_manifest_list " ${GHCR_NAMESPACE} " " $variant " " $digest_amd64 " " $digest_arm64 "
37+ done
Original file line number Diff line number Diff line change @@ -176,27 +176,7 @@ jobs:
176176 buildkitd-flags : " --debug"
177177
178178 - name : 🚀 Create manifest list and push
179- working-directory : /tmp
180- run : |
181- variants=($(ls bake-meta-*.json | sed -E 's/bake-meta-//; s/-amd64.json|-arm64.json//g' | sort -u))
182- for variant in "${variants[@]}"; do
183-
184- # Fetch digests for amd64 and arm64 architectures
185- DIGEST_AMD64=$(basename $(ls /tmp/digests/digests-${variant}-amd64/*))
186- DIGEST_ARM64=$(basename $(ls /tmp/digests/digests-${variant}-arm64/*))
187- echo "Digest AMD64: $DIGEST_AMD64"
188- echo "Digest ARM64: $DIGEST_ARM64"
189-
190- # Create the manifest list for Docker Hub
191- docker buildx imagetools create $(jq -cr ".target.\"docker-metadata-action\".tags | map(select(startswith(\"${DOCKER_NAMESPACE}\")) | \"-t \" + .) | join(\" \")" /tmp/bake-meta-${variant}-amd64.json) \
192- "${DOCKER_NAMESPACE}@sha256:${DIGEST_AMD64}" \
193- "${DOCKER_NAMESPACE}@sha256:${DIGEST_ARM64}"
194-
195- # Create the manifest list for GHCR
196- docker buildx imagetools create $(jq -cr ".target.\"docker-metadata-action\".tags | map(select(startswith(\"${GHCR_NAMESPACE}\")) | \"-t \" + .) | join(\" \")" /tmp/bake-meta-${variant}-amd64.json) \
197- "${GHCR_NAMESPACE}@sha256:${DIGEST_AMD64}" \
198- "${GHCR_NAMESPACE}@sha256:${DIGEST_ARM64}"
199-
200- done
179+ shell : bash
180+ run : .github/scripts/build-images.sh
201181
202182...
You can’t perform that action at this time.
0 commit comments