Skip to content

Commit e210438

Browse files
refactor: Build and push multi-platform Docker image in one step
1 parent 33e1a0d commit e210438

File tree

1 file changed

+6
-35
lines changed

1 file changed

+6
-35
lines changed

.github/workflows/release.yaml

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -64,43 +64,14 @@ jobs:
6464
with:
6565
username: ${{ secrets.DOCKERHUB_USERNAME }}
6666
password: ${{ secrets.DOCKERHUB_TOKEN }}
67-
- name: Build and push Docker image for amd64
67+
- name: Build and push multi-platform Docker image
6868
uses: docker/build-push-action@v5
6969
with:
70-
platforms: linux/amd64
70+
platforms: linux/amd64,linux/arm64
7171
push: true
7272
tags: |
73-
cybuerg/cfspeedtest:${{ github.ref_name }}-amd64
74-
cybuerg/cfspeedtest:latest-amd64
73+
cybuerg/cfspeedtest:${{ github.ref_name }}
74+
cybuerg/cfspeedtest:latest
7575
cache-from: type=local,src=/tmp/.buildx-cache
76-
cache-to: type=local,dest=/tmp/.buildx-cache-amd64,mode=max
77-
78-
- name: Build and push Docker image for arm64
79-
uses: docker/build-push-action@v5
80-
with:
81-
platforms: linux/arm64
82-
push: true
83-
tags: |
84-
cybuerg/cfspeedtest:${{ github.ref_name }}-arm64
85-
cybuerg/cfspeedtest:latest-arm64
86-
cache-from: type=local,src=/tmp/.buildx-cache
87-
cache-to: type=local,dest=/tmp/.buildx-cache-arm64,mode=max
88-
89-
- name: Create and push multi-platform manifest
90-
run: |
91-
docker manifest create cybuerg/cfspeedtest:${{ github.ref_name }} \
92-
cybuerg/cfspeedtest:${{ github.ref_name }}-amd64 \
93-
cybuerg/cfspeedtest:${{ github.ref_name }}-arm64
94-
docker manifest create cybuerg/cfspeedtest:latest \
95-
cybuerg/cfspeedtest:latest-amd64 \
96-
cybuerg/cfspeedtest:latest-arm64
97-
docker manifest push cybuerg/cfspeedtest:${{ github.ref_name }}
98-
docker manifest push cybuerg/cfspeedtest:latest
99-
100-
- name: Merge and move cache
101-
run: |
102-
mkdir -p /tmp/.buildx-cache-new
103-
cp -r /tmp/.buildx-cache-amd64/* /tmp/.buildx-cache-new/ || true
104-
cp -r /tmp/.buildx-cache-arm64/* /tmp/.buildx-cache-new/ || true
105-
rm -rf /tmp/.buildx-cache
106-
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
76+
# Use mode=max for cache-to to ensure both platform caches are written
77+
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max

0 commit comments

Comments
 (0)