@@ -76,22 +76,16 @@ jobs:
7676
7777 build-docker :
7878 runs-on : ubuntu-latest
79- strategy :
80- matrix :
81- platform :
82- - linux/arm64
83- - linux/amd64
8479
8580 steps :
8681 - name : Checkout code
87- uses : actions/checkout@v3
82+ uses : actions/checkout@v4
8883
89- - name : Set up QEMU
90- uses : docker/setup-qemu-action@v2
91- if : ${{ matrix.platform != 'linux/amd64' }}
84+ - name : Set up QEMU for cross-compilation
85+ uses : docker/setup-qemu-action@v3
9286
9387 - name : Set up Docker Buildx
94- uses : docker/setup-buildx-action@v2
88+ uses : docker/setup-buildx-action@v3
9589
9690 - name : Acquire Docker image metadata
9791 id : metadata
@@ -100,63 +94,17 @@ jobs:
10094 images : valeriansaliou/sonic
10195
10296 - name : Login to Docker Hub
103- uses : docker/login-action@v2
97+ uses : docker/login-action@v3
10498 with :
10599 username : ${{ secrets.DOCKERHUB_USERNAME }}
106100 password : ${{ secrets.DOCKERHUB_TOKEN }}
107101
108- - name : Build and push by digest
102+ - name : Build and push Docker image
109103 uses : docker/build-push-action@v4
110104 id : build
111105 with :
112106 context : .
107+ platforms : linux/amd64,linux/arm64
108+ tags : ${{ steps.metadata.outputs.tags }}
113109 labels : ${{ steps.metadata.outputs.labels }}
114- platforms : ${{ matrix.platform }}
115- outputs : type=image,name=valeriansaliou/sonic,push-by-digest=true,name-canonical=true,push=true
116-
117- - name : Export digests
118- run : |
119- mkdir -p /tmp/digests
120- digest="${{ steps.build.outputs.digest }}"
121- touch "/tmp/digests/${digest#sha256:}"
122-
123- - name : Upload digests
124- uses : actions/upload-artifact@v3
125- with :
126- name : docker-digests
127- path : /tmp/digests/*
128- if-no-files-found : error
129- retention-days : 1
130-
131- merge-docker :
132- runs-on : ubuntu-latest
133- needs :
134- - build-docker
135-
136- steps :
137- - name : Download digests
138- uses : actions/download-artifact@v3
139- with :
140- name : docker-digests
141- path : /tmp/digests
142-
143- - name : Set up Docker Buildx
144- uses : docker/setup-buildx-action@v2
145-
146- - name : Login to Docker Hub
147- uses : docker/login-action@v2
148- with :
149- username : ${{ secrets.DOCKERHUB_USERNAME }}
150- password : ${{ secrets.DOCKERHUB_TOKEN }}
151-
152- - name : Extract metadata (tags, labels) for Docker
153- id : meta
154- uses : docker/metadata-action@v4
155- with :
156- images : valeriansaliou/sonic
157-
158- - name : Create manifest list and push
159- working-directory : /tmp/digests
160- run : |
161- docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
162- $(printf 'valeriansaliou/sonic@sha256:%s ' *)
110+ push : true
0 commit comments