9
9
10
10
jobs :
11
11
build-mina-node-image :
12
- if : github.ref != 'refs/heads/develop' && !startsWith(github.ref, 'refs/tags/')
13
12
timeout-minutes : 40
14
13
strategy :
15
14
matrix :
62
61
63
62
# Frontend
64
63
build-mina-frontend-image :
65
- if : github.ref != 'refs/heads/develop' && !startsWith(github.ref, 'refs/tags/')
66
64
timeout-minutes : 5
67
65
strategy :
68
66
matrix :
@@ -112,26 +110,14 @@ jobs:
112
110
if-no-files-found : error
113
111
retention-days : 1
114
112
115
- # Push images to registry
116
- push-images :
117
- strategy :
118
- matrix :
119
- arch :
120
- - platform : linux/amd64
121
- runs-on : ubuntu-latest
122
- - platform : linux/arm64
123
- runs-on : ubuntu-24.04-arm
124
- runs-on : ${{ matrix.arch.runs-on }}
113
+ # Create and push multi-arch manifests for production releases
114
+ push-multi-arch-images :
115
+ runs-on : ubuntu-latest
125
116
if : github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release')
117
+ needs :
118
+ - build-mina-node-image
119
+ - build-mina-frontend-image
126
120
steps :
127
- - name : Git checkout
128
- uses : actions/checkout@v5
129
-
130
- # This is needed so that we can get the current version with vergen
131
- - name : Fetch tag for current commit
132
- run : |
133
- git fetch --depth=1 origin +refs/tags/*:refs/tags/*
134
-
135
121
- name : Login to Docker Hub
136
122
uses : docker/login-action@v3
137
123
with :
@@ -149,12 +135,35 @@ jobs:
149
135
echo "GIT_COMMIT=${BRANCH_NAME}" >> $GITHUB_ENV
150
136
fi
151
137
152
- - name : Build and push mina-rust image
138
+ - name : Set up Docker Buildx
139
+ uses : docker/setup-buildx-action@v3
140
+
141
+ # Create mina-rust multi-arch manifest
142
+ - name : Download mina-rust digests
143
+ uses : actions/download-artifact@v4
144
+ with :
145
+ path : /tmp/mina-digests
146
+ pattern : node-digests-*
147
+ merge-multiple : true
148
+
149
+ - name : Create mina-rust manifest list and push
150
+ working-directory : /tmp/mina-digests
153
151
run : |
154
- make docker-build-mina
155
- make docker-push-mina
152
+ docker buildx imagetools create \
153
+ --tag ${{ env.REGISTRY_NODE_IMAGE }}:${{ env.GIT_COMMIT }} \
154
+ $(printf '${{ env.REGISTRY_NODE_IMAGE }}@sha256:%s ' *)
155
+
156
+ # Create mina-rust-frontend multi-arch manifest
157
+ - name : Download mina-rust-frontend digests
158
+ uses : actions/download-artifact@v4
159
+ with :
160
+ path : /tmp/frontend-digests
161
+ pattern : frontend-*-digests-*
162
+ merge-multiple : true
156
163
157
- - name : Build and push mina-rust-frontend image
164
+ - name : Create mina-rust-frontend manifest list and push
165
+ working-directory : /tmp/frontend-digests
158
166
run : |
159
- make docker-build-frontend
160
- make docker-push-frontend
167
+ docker buildx imagetools create \
168
+ --tag ${{ env.REGISTRY_FRONTEND_IMAGE }}:${{ env.GIT_COMMIT }} \
169
+ $(printf '${{ env.REGISTRY_FRONTEND_IMAGE }}@sha256:%s ' *)
0 commit comments