Skip to content

Commit 85bc34d

Browse files
authored
ci: changes (#48)
1 parent 09c83a6 commit 85bc34d

File tree

2 files changed

+25
-30
lines changed

2 files changed

+25
-30
lines changed

.github/workflows/build.yml

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ jobs:
6666
${{ env.GHCR_NAMESPACE }}
6767
tags: |
6868
type=raw,event=branch,value=latest
69-
type=ref,event=pr
7069
type=ref,event=tag
7170
type=semver,pattern={{version}}
7271
type=semver,pattern={{major}}.{{minor}}
@@ -134,7 +133,7 @@ jobs:
134133
- name: 📤 Upload digest
135134
uses: actions/upload-artifact@v4
136135
with:
137-
name: digests-${{ env.PLATFORM_CACHE_TAG }}.json
136+
name: digests-${{ env.PLATFORM_CACHE_TAG }}
138137
path: /tmp/digests/*
139138
if-no-files-found: error
140139
retention-days: 1
@@ -149,20 +148,13 @@ jobs:
149148
with:
150149
pattern: bake-meta-*
151150
path: /tmp
151+
merge-multiple: true
152152

153153
- name: 📥 Download meta bake definitions
154154
uses: actions/download-artifact@v4
155155
with:
156156
pattern: digests-*
157-
path: /tmp/digests/*
158-
159-
- name: Print downloaded bake meta files
160-
run: |
161-
ls -la /tmp
162-
163-
- name: Print downloaded digests
164-
run: |
165-
ls -la /tmp/digests
157+
path: /tmp/digests
166158

167159
- name: 🔑 Login to docker-hub
168160
uses: docker/login-action@v3
@@ -188,25 +180,28 @@ jobs:
188180
platforms: linux/amd64,linux/arm64
189181
buildkitd-flags: "--debug"
190182

191-
- name: Create manifest list and push
183+
- name: 🚀 Create manifest list and push
184+
working-directory: /tmp
192185
run: |
193-
# Aggregate all tags from the meta files
194-
TAGS=$(jq -r '.target."docker-metadata-action".tags[]' /tmp/bake-meta-*.json | sort -u)
195-
196-
# Loop through each tag and create a manifest list
197-
for TAG in $TAGS; do
198-
FULL_TAGS=()
199-
for FILE in /tmp/bake-meta-*.json; do
200-
if jq -e --arg TAG "$TAG" '.target."docker-metadata-action".tags[] | select(. == $TAG)' $FILE > /dev/null; then
201-
# Extract the repository and digest for the current platform
202-
REPO=$(jq -r --arg TAG "$TAG" '.target."docker-metadata-action".tags[] | select(. == $TAG)' $FILE | cut -d':' -f1)
203-
DIGEST=$(jq -r '.["'$REPO'"]["containerimage.digest"]' $FILE)
204-
FULL_TAGS+=("$REPO@$DIGEST")
205-
fi
206-
done
207-
208-
# Create and push the manifest list for the current tag
209-
docker buildx imagetools create "${FULL_TAGS[@]}" -t "$TAG"
186+
variants=($(ls bake-meta-*.json | sed -E 's/bake-meta-//; s/-amd64.json|-arm64.json//g' | sort -u))
187+
for variant in "${variants[@]}"; do
188+
189+
# Fetch digests for amd64 and arm64 architectures
190+
DIGEST_AMD64=$(basename $(ls /tmp/digests/digests-${variant}-amd64/*))
191+
DIGEST_ARM64=$(basename $(ls /tmp/digests/digests-${variant}-arm64/*))
192+
echo "Digest AMD64: $DIGEST_AMD64"
193+
echo "Digest ARM64: $DIGEST_ARM64"
194+
195+
# Create the manifest list for Docker Hub
196+
docker buildx imagetools create $(jq -cr ".target.\"docker-metadata-action\".tags | map(select(startswith(\"${DOCKER_NAMESPACE}\")) | \"-t \" + .) | join(\" \")" /tmp/bake-meta-${variant}-amd64.json) \
197+
"${DOCKER_NAMESPACE}@sha256:${DIGEST_AMD64}" \
198+
"${DOCKER_NAMESPACE}@sha256:${DIGEST_ARM64}"
199+
200+
# Create the manifest list for GHCR
201+
docker buildx imagetools create $(jq -cr ".target.\"docker-metadata-action\".tags | map(select(startswith(\"${GHCR_NAMESPACE}\")) | \"-t \" + .) | join(\" \")" /tmp/bake-meta-${variant}-amd64.json) \
202+
"${GHCR_NAMESPACE}@sha256:${DIGEST_AMD64}" \
203+
"${GHCR_NAMESPACE}@sha256:${DIGEST_ARM64}"
204+
210205
done
211206
212207
...

.github/workflows/upload-assets.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: 📦 Check out the codebase
17-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
17+
uses: actions/checkout@v4.1.1
1818

1919
- name: 🚀 Generate dist files
2020
run: make generate

0 commit comments

Comments
 (0)