4545 zip : windows
4646 token : ${{ secrets.GITHUB_TOKEN }}
4747
48- docker-build-and-push :
48+ docker-build-amd64 :
4949 needs : [create-release, upload-assets]
5050 runs-on : ubuntu-latest
5151 steps :
@@ -57,11 +57,50 @@ jobs:
5757 with :
5858 username : ${{ secrets.DOCKERHUB_USERNAME }}
5959 password : ${{ secrets.DOCKERHUB_TOKEN }}
60- - name : Build and push Docker image
60+ - name : Build and push AMD64 Docker image
6161 uses : docker/build-push-action@v5
6262 with :
63- platforms : linux/amd64,linux/arm64
63+ platforms : linux/amd64
6464 push : true
6565 tags : |
66- cybuerg/cfspeedtest:${{ github.ref_name }}
67- cybuerg/cfspeedtest:latest
66+ cybuerg/cfspeedtest:${{ github.ref_name }}-amd64
67+ cybuerg/cfspeedtest:latest-amd64
68+
69+ docker-build-arm64 :
70+ needs : [create-release, upload-assets]
71+ runs-on : ubuntu-24.04-arm
72+ steps :
73+ - uses : actions/checkout@v4
74+ - name : Log in to DockerHub
75+ uses : docker/login-action@v3
76+ with :
77+ username : ${{ secrets.DOCKERHUB_USERNAME }}
78+ password : ${{ secrets.DOCKERHUB_TOKEN }}
79+ - name : Build and push ARM64 Docker image
80+ run : |
81+ docker build --platform linux/arm64 -t cybuerg/cfspeedtest:${{ github.ref_name }}-arm64 -t cybuerg/cfspeedtest:latest-arm64 .
82+ docker push cybuerg/cfspeedtest:${{ github.ref_name }}-arm64
83+ docker push cybuerg/cfspeedtest:latest-arm64
84+
85+ docker-create-manifest :
86+ needs : [docker-build-amd64, docker-build-arm64]
87+ runs-on : ubuntu-latest
88+ steps :
89+ - name : Log in to DockerHub
90+ uses : docker/login-action@v3
91+ with :
92+ username : ${{ secrets.DOCKERHUB_USERNAME }}
93+ password : ${{ secrets.DOCKERHUB_TOKEN }}
94+ - name : Create and push multi-arch manifest
95+ run : |
96+ # Create manifest for versioned tag
97+ docker manifest create cybuerg/cfspeedtest:${{ github.ref_name }} \
98+ cybuerg/cfspeedtest:${{ github.ref_name }}-amd64 \
99+ cybuerg/cfspeedtest:${{ github.ref_name }}-arm64
100+ docker manifest push cybuerg/cfspeedtest:${{ github.ref_name }}
101+
102+ # Create manifest for latest tag
103+ docker manifest create cybuerg/cfspeedtest:latest \
104+ cybuerg/cfspeedtest:latest-amd64 \
105+ cybuerg/cfspeedtest:latest-arm64
106+ docker manifest push cybuerg/cfspeedtest:latest
0 commit comments