Skip to content

Commit 29e188d

Browse files
committed
misc: Merge with main
2 parents 807396c + 288df4e commit 29e188d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1021
-159
lines changed

.github/workflows/docker-bases.yml

Lines changed: 101 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
name: Build base compilers docker images
22

3+
permissions:
4+
contents: read
5+
36
concurrency:
47
group: ${{ github.workflow }}-${{ github.ref }}
58
cancel-in-progress: true
@@ -38,14 +41,22 @@ jobs:
3841
#######################################################
3942
deploy-cpu-bases:
4043
if: inputs.cpu
41-
name: "cpu-base"
42-
runs-on: ubuntu-latest
44+
name: "cpu-base-${{ matrix.arch }}-gcc${{ matrix.gcc }}"
45+
runs-on: ${{ matrix.runner }}
4346
env:
4447
DOCKER_BUILDKIT: "1"
4548

4649
strategy:
4750
matrix:
4851
gcc: ["", "14"]
52+
arch: [amd64, arm64]
53+
include:
54+
- arch: amd64
55+
platform: linux/amd64
56+
runner: ubuntu-latest
57+
- arch: arm64
58+
platform: linux/arm64
59+
runner: ubuntu-24.04-arm
4960

5061
steps:
5162
- name: Checkout devito
@@ -72,8 +83,41 @@ jobs:
7283
context: .
7384
file: "./docker/Dockerfile.cpu"
7485
push: true
86+
platforms: ${{ matrix.platform }}
7587
build-args: "gcc=${{ matrix.gcc }}"
76-
tags: "devitocodes/bases:cpu-gcc${{ matrix.gcc }}"
88+
tags: "devitocodes/bases:cpu-gcc${{ matrix.gcc }}-${{ matrix.arch }}"
89+
90+
deploy-cpu-bases-manifest:
91+
if: inputs.cpu
92+
name: "cpu-base-manifest"
93+
runs-on: ubuntu-latest
94+
needs: deploy-cpu-bases
95+
env:
96+
DOCKER_BUILDKIT: "1"
97+
98+
strategy:
99+
matrix:
100+
gcc: ["", "14"]
101+
102+
steps:
103+
- name: Set up Docker Buildx
104+
uses: docker/setup-buildx-action@v3
105+
106+
- name: Login to DockerHub
107+
uses: docker/login-action@v3
108+
with:
109+
username: ${{ secrets.DOCKER_USERNAME }}
110+
password: ${{ secrets.DOCKER_PASSWORD }}
111+
112+
- name: Create multi-arch manifest
113+
env:
114+
TAG_BASE: ${{ format('cpu-gcc{0}', matrix.gcc) }}
115+
run: |
116+
docker buildx imagetools create \
117+
--tag devitocodes/bases:${TAG_BASE} \
118+
devitocodes/bases:${TAG_BASE}-amd64 \
119+
devitocodes/bases:${TAG_BASE}-arm64
120+
docker buildx imagetools inspect devitocodes/bases:${TAG_BASE}
77121
78122
#######################################################
79123
############## Intel OneApi CPU #######################
@@ -138,11 +182,24 @@ jobs:
138182
#######################################################
139183
deploy-nvidia-bases:
140184
if: inputs.nvidia
141-
name: "nvidia-bases"
142-
runs-on: ["self-hosted", "nvidiagpu"]
185+
name: "nvidia-bases-${{ matrix.arch }}"
186+
runs-on: ${{ matrix.runner }}
143187
env:
144188
DOCKER_BUILDKIT: "1"
145189

190+
strategy:
191+
matrix:
192+
arch: [amd64, arm64]
193+
include:
194+
- arch: amd64
195+
platform: linux/amd64
196+
runner:
197+
- self-hosted
198+
- nvidiagpu
199+
- arch: arm64
200+
platform: linux/arm64
201+
runner: ubuntu-24.04-arm
202+
146203
steps:
147204
- name: Checkout devito
148205
uses: actions/checkout@v5
@@ -169,10 +226,11 @@ jobs:
169226
file: "./docker/Dockerfile.nvidia"
170227
push: true
171228
target: "nvc"
229+
platforms: ${{ matrix.platform }}
172230
build-args: "arch=nvc"
173231
# Label (not tag) with runner name for traceability without changing image tags
174232
labels: builder-runner=${{ runner.name }}
175-
tags: "devitocodes/bases:nvidia-nvc"
233+
tags: "devitocodes/bases:nvidia-nvc-${{ matrix.arch }}"
176234

177235
- name: NVCC image
178236
uses: docker/build-push-action@v6
@@ -181,9 +239,10 @@ jobs:
181239
file: "./docker/Dockerfile.nvidia"
182240
push: true
183241
target: "nvcc"
242+
platforms: ${{ matrix.platform }}
184243
build-args: "arch=nvcc"
185244
labels: builder-runner=${{ runner.name }}
186-
tags: "devitocodes/bases:nvidia-nvcc"
245+
tags: "devitocodes/bases:nvidia-nvcc-${{ matrix.arch }}"
187246

188247
- name: NVC host image
189248
uses: docker/build-push-action@v6
@@ -192,9 +251,42 @@ jobs:
192251
file: "./docker/Dockerfile.nvidia"
193252
push: true
194253
target: "nvc-host"
254+
platforms: ${{ matrix.platform }}
195255
build-args: "arch=nvc-host"
196256
labels: builder-runner=${{ runner.name }}
197-
tags: "devitocodes/bases:cpu-nvc"
257+
tags: "devitocodes/bases:cpu-nvc-${{ matrix.arch }}"
258+
259+
deploy-nvidia-bases-manifest:
260+
if: inputs.nvidia
261+
name: "nvidia-base-manifest"
262+
runs-on: ubuntu-latest
263+
needs: deploy-nvidia-bases
264+
env:
265+
DOCKER_BUILDKIT: "1"
266+
267+
strategy:
268+
matrix:
269+
final_tag: [nvidia-nvc, nvidia-nvcc, cpu-nvc]
270+
271+
steps:
272+
- name: Set up Docker Buildx
273+
uses: docker/setup-buildx-action@v3
274+
275+
- name: Login to DockerHub
276+
uses: docker/login-action@v3
277+
with:
278+
username: ${{ secrets.DOCKER_USERNAME }}
279+
password: ${{ secrets.DOCKER_PASSWORD }}
280+
281+
- name: Create multi-arch manifest
282+
env:
283+
FINAL_TAG: ${{ matrix.final_tag }}
284+
run: |
285+
docker buildx imagetools create \
286+
--tag devitocodes/bases:${FINAL_TAG} \
287+
devitocodes/bases:${FINAL_TAG}-amd64 \
288+
devitocodes/bases:${FINAL_TAG}-arm64
289+
docker buildx imagetools inspect devitocodes/bases:${FINAL_TAG}
198290
199291
#######################################################
200292
##################### AMD #############################
@@ -246,5 +338,5 @@ jobs:
246338
push: true
247339
target: "hip"
248340
build-args: |
249-
ROCM_VERSION=6.3.4
341+
ROCM_VERSION=7.0.2
250342
tags: devitocodes/bases:amd-hip

0 commit comments

Comments
 (0)