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:
176
176
buildkitd-flags : " --debug"
177
177
178
178
- 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
201
181
202
182
...
You can’t perform that action at this time.
0 commit comments