Skip to content

Commit c4a4073

Browse files
abachmannobnoxxx
authored andcommitted
workflows: build and push arm64 images
1 parent 5fee09e commit c4a4073

File tree

1 file changed

+82
-6
lines changed

1 file changed

+82
-6
lines changed

.github/workflows/container-image.yml

Lines changed: 82 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
matrix:
4646
package_source: [default, nightly]
4747
os: [centos, fedora, opensuse]
48-
arch: [amd64]
48+
arch: [amd64, arm64]
4949
exclude:
5050
# there are no nightly packages for opensuse
5151
- package_source: nightly
@@ -60,6 +60,10 @@ jobs:
6060
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch }}
6161
steps:
6262
- uses: actions/checkout@v4
63+
- name: Install QEMU
64+
uses: docker/setup-qemu-action@v3
65+
- name: Install buildx for docker
66+
uses: docker/setup-buildx-action@v3
6367
- name: Build the server image
6468
run: make KIND=server PACKAGE_SOURCE=${{ matrix.package_source }} OS_NAME=${{ matrix.os}} BUILD_ARCH=${{ matrix.arch}} build-image
6569
- name: Upload server image
@@ -74,7 +78,7 @@ jobs:
7478
matrix:
7579
package_source: [default, nightly]
7680
os: [centos, fedora, opensuse]
77-
arch: [amd64]
81+
arch: [amd64, arm64]
7882
exclude:
7983
# there are no nightly packages for opensuse
8084
- package_source: nightly
@@ -88,6 +92,10 @@ jobs:
8892
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch }}
8993
steps:
9094
- uses: actions/checkout@v4
95+
- name: Install QEMU
96+
uses: docker/setup-qemu-action@v3
97+
- name: Install buildx for docker
98+
uses: docker/setup-buildx-action@v3
9199
- name: Build the ad server image
92100
run: make KIND=ad-server PACKAGE_SOURCE=${{ matrix.package_source }} OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch }} build-image
93101
- name: Upload ad server image
@@ -101,13 +109,17 @@ jobs:
101109
strategy:
102110
matrix:
103111
os: [centos, fedora, opensuse]
104-
arch: [amd64]
112+
arch: [amd64, arm64]
105113
runs-on: ubuntu-latest
106114
env:
107115
BUILDAH_FORMAT: oci
108116
IMG_TAG: default-${{ matrix.os }}-${{ matrix.arch }}
109117
steps:
110118
- uses: actions/checkout@v4
119+
- name: Install QEMU
120+
uses: docker/setup-qemu-action@v3
121+
- name: Install buildx for docker
122+
uses: docker/setup-buildx-action@v3
111123
- name: build the client image
112124
run: make KIND=client OS_NAME=${{ matrix.os }} BUILD_ARCH=${{ matrix.arch }} build-image
113125
# The client image is used as a base for the samba-toolbox build process.
@@ -122,14 +134,18 @@ jobs:
122134
strategy:
123135
matrix:
124136
os: [centos, fedora, opensuse]
125-
arch: [amd64]
137+
arch: [amd64, arm64]
126138
needs: build-client
127139
runs-on: ubuntu-latest
128140
env:
129141
BUILDAH_FORMAT: oci
130142
IMG_TAG: default-${{ matrix.os }}-${{ matrix.arch }}
131143
steps:
132144
- uses: actions/checkout@v4
145+
- name: Install QEMU
146+
uses: docker/setup-qemu-action@v3
147+
- name: Install buildx for docker
148+
uses: docker/setup-buildx-action@v3
133149
# Download locally stored samba-client image to be used as base for building
134150
# samba-toolbox.
135151
- name: Download client image
@@ -158,7 +174,7 @@ jobs:
158174
matrix:
159175
package_source: [default, nightly]
160176
os: [centos, fedora, opensuse]
161-
arch: [amd64]
177+
arch: [amd64, arm64]
162178
exclude:
163179
# there are no nightly packages for opensuse
164180
- package_source: nightly
@@ -174,6 +190,10 @@ jobs:
174190
IMG_TAG: ${{ matrix.package_source }}-${{ matrix.os }}-${{ matrix.arch }}
175191
steps:
176192
- uses: actions/checkout@v4
193+
- name: Install QEMU
194+
uses: docker/setup-qemu-action@v3
195+
- name: Install buildx for docker
196+
uses: docker/setup-buildx-action@v3
177197
- name: Download server image
178198
uses: ishworkh/[email protected]
179199
with:
@@ -250,43 +270,83 @@ jobs:
250270
with:
251271
image: "samba-server:default-fedora-amd64"
252272
container_engine: ${{ env.CONTAINER_CMD }}
273+
- name: Fetch server default-fedora-arm64
274+
uses: ishworkh/[email protected]
275+
with:
276+
image: "samba-server:default-fedora-arm64"
277+
container_engine: ${{ env.CONTAINER_CMD }}
253278
- name: Fetch server nightly-fedora-amd64
254279
uses: ishworkh/[email protected]
255280
with:
256281
image: "samba-server:nightly-fedora-amd64"
257282
container_engine: ${{ env.CONTAINER_CMD }}
283+
- name: Fetch server nightly-fedora-arm64
284+
uses: ishworkh/[email protected]
285+
with:
286+
image: "samba-server:nightly-fedora-arm64"
287+
container_engine: ${{ env.CONTAINER_CMD }}
258288
- name: Fetch server nightly-centos-amd64
259289
uses: ishworkh/[email protected]
260290
with:
261291
image: "samba-server:nightly-centos-amd64"
262292
container_engine: ${{ env.CONTAINER_CMD }}
293+
- name: Fetch server nightly-centos-arm64
294+
uses: ishworkh/[email protected]
295+
with:
296+
image: "samba-server:nightly-centos-arm64"
297+
container_engine: ${{ env.CONTAINER_CMD }}
263298
- name: Fetch server devbuilds-centos-amd64
264299
uses: ishworkh/[email protected]
265300
with:
266301
image: "samba-server:devbuilds-centos-amd64"
267302
container_engine: ${{ env.CONTAINER_CMD }}
303+
- name: Fetch server devbuilds-centos-arm64
304+
uses: ishworkh/[email protected]
305+
with:
306+
image: "samba-server:devbuilds-centos-arm64"
307+
container_engine: ${{ env.CONTAINER_CMD }}
268308
# (ad server images)
269309
- name: Fetch ad-server default-fedora-amd64
270310
uses: ishworkh/[email protected]
271311
with:
272312
image: "samba-ad-server:default-fedora-amd64"
273313
container_engine: ${{ env.CONTAINER_CMD }}
314+
- name: Fetch ad-server default-fedora-arm64
315+
uses: ishworkh/[email protected]
316+
with:
317+
image: "samba-ad-server:default-fedora-arm64"
318+
container_engine: ${{ env.CONTAINER_CMD }}
274319
- name: Fetch ad-server nightly-fedora-amd64
275320
uses: ishworkh/[email protected]
276321
with:
277322
image: "samba-ad-server:nightly-fedora-amd64"
278323
container_engine: ${{ env.CONTAINER_CMD }}
324+
- name: Fetch ad-server nightly-fedora-arm64
325+
uses: ishworkh/[email protected]
326+
with:
327+
image: "samba-ad-server:nightly-fedora-arm64"
328+
container_engine: ${{ env.CONTAINER_CMD }}
279329
# (client images)
280330
- name: Fetch client default-fedora-amd64
281331
uses: ishworkh/[email protected]
282332
with:
283333
image: "samba-client:default-fedora-amd64"
284334
container_engine: ${{ env.CONTAINER_CMD }}
335+
- name: Fetch client default-fedora-arm64
336+
uses: ishworkh/[email protected]
337+
with:
338+
image: "samba-client:default-fedora-arm64"
339+
container_engine: ${{ env.CONTAINER_CMD }}
285340
# (toolbox images)
286341
- name: Fetch toolbox default-fedora-amd64
287342
uses: ishworkh/[email protected]
288343
with:
289-
image: "samba-toolbox:default-fedora-amd64"
344+
image: "samba-toolbox:default-fedora-arm64"
345+
container_engine: ${{ env.CONTAINER_CMD }}
346+
- name: Fetch toolbox default-fedora-amd64
347+
uses: ishworkh/[email protected]
348+
with:
349+
image: "samba-toolbox:default-fedora-arm64"
290350
container_engine: ${{ env.CONTAINER_CMD }}
291351
# reapply missing tags
292352
- name: Retag images
@@ -297,13 +357,21 @@ jobs:
297357
--repo-base=${REPO_BASE}
298358
--no-distro-qualified
299359
-i samba-server:default-fedora-amd64
360+
-i samba-server:default-fedora-arm64
300361
-i samba-server:nightly-fedora-amd64
362+
-i samba-server:nightly-fedora-arm64
301363
-i samba-server:nightly-centos-amd64
364+
-i samba-server:nightly-centos-arm64
302365
-i samba-server:devbuilds-centos-amd64
366+
-i samba-server:devbuilds-centos-arm64
303367
-i samba-ad-server:default-fedora-amd64
368+
-i samba-ad-server:default-fedora-arm64
304369
-i samba-ad-server:nightly-fedora-amd64
370+
-i samba-ad-server:nightly-fedora-arm64
305371
-i samba-client:default-fedora-amd64
372+
-i samba-client:default-fedora-arm64
306373
-i samba-toolbox:default-fedora-amd64
374+
-i samba-toolbox:default-fedora-arm64
307375
- name: Push images
308376
run: >
309377
./hack/build-image
@@ -313,10 +381,18 @@ jobs:
313381
--push-state=exists
314382
--push-selected-tags=mixed
315383
-i ${REPO_BASE}/samba-server:default-fedora-amd64
384+
-i ${REPO_BASE}/samba-server:default-fedora-arm64
316385
-i ${REPO_BASE}/samba-server:nightly-fedora-amd64
386+
-i ${REPO_BASE}/samba-server:nightly-fedora-arm64
317387
-i ${REPO_BASE}/samba-server:nightly-centos-amd64
388+
-i ${REPO_BASE}/samba-server:nightly-centos-arm64
318389
-i ${REPO_BASE}/samba-server:devbuilds-centos-amd64
390+
-i ${REPO_BASE}/samba-server:devbuilds-centos-arm64
319391
-i ${REPO_BASE}/samba-ad-server:default-fedora-amd64
392+
-i ${REPO_BASE}/samba-ad-server:default-fedora-arm64
320393
-i ${REPO_BASE}/samba-ad-server:nightly-fedora-amd64
394+
-i ${REPO_BASE}/samba-ad-server:nightly-fedora-arm64
321395
-i ${REPO_BASE}/samba-client:default-fedora-amd64
396+
-i ${REPO_BASE}/samba-client:default-fedora-arm64
322397
-i ${REPO_BASE}/samba-toolbox:default-fedora-amd64
398+
-i ${REPO_BASE}/samba-toolbox:default-fedora-arm64

0 commit comments

Comments
 (0)