@@ -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