Skip to content

Commit 417bc4b

Browse files
committed
ci: move build into bash file
1 parent b99c1e9 commit 417bc4b

File tree

2 files changed

+39
-22
lines changed

2 files changed

+39
-22
lines changed

.github/scripts/build-images.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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

.github/workflows/build.yml

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff 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
...

0 commit comments

Comments
 (0)