Skip to content

Commit 91b6f22

Browse files
committed
ci: Build free-threaded base images
1 parent 8ca3df7 commit 91b6f22

File tree

1 file changed

+78
-16
lines changed

1 file changed

+78
-16
lines changed

.github/workflows/docker-bases.yml

Lines changed: 78 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
- '/docker/Dockerfile.cpu'
1212
- '/docker/Dockerfile.amd'
1313
- '/docker/Dockerfile.intel'
14+
- '/docker/Dockerfile.nogil'
1415
workflow_dispatch:
1516
inputs:
1617
cpu:
@@ -46,6 +47,7 @@ jobs:
4647
strategy:
4748
matrix:
4849
gcc: ["", "14"]
50+
disable-gil: [false, true]
4951

5052
steps:
5153
- name: Checkout devito
@@ -69,14 +71,24 @@ jobs:
6971
- name: cleanup
7072
run: docker system prune -a -f
7173

74+
- name: Build free-threaded base image
75+
uses: docker/build-push-action@v6
76+
if: ${{ matrix.disable-gil }}
77+
with:
78+
context: .
79+
file: './docker/Dockerfile.nogil'
80+
tags: ubuntu-nogil
81+
7282
- name: GCC image
7383
uses: docker/build-push-action@v6
7484
with:
7585
context: .
7686
file: './docker/Dockerfile.cpu'
7787
push: true
78-
build-args: 'gcc=${{ matrix.gcc }}'
79-
tags: 'devitocodes/bases:cpu-gcc${{ matrix.gcc }}'
88+
build-args: |
89+
gcc=${{ matrix.gcc }}
90+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
91+
tags: devitocodes/bases:cpu-gcc${{ matrix.gcc }}${{ matrix.disable-gil && '-nogil' || '' }}
8092

8193

8294
#######################################################
@@ -89,6 +101,10 @@ jobs:
89101
env:
90102
DOCKER_BUILDKIT: "1"
91103

104+
strategy:
105+
matrix:
106+
disable-gil: [false, true]
107+
92108
steps:
93109
- name: Checkout devito
94110
uses: actions/checkout@v4
@@ -111,15 +127,25 @@ jobs:
111127
- name: cleanup
112128
run: docker system prune -a -f
113129

130+
- name: Build free-threaded base image
131+
uses: docker/build-push-action@v6
132+
if: ${{ matrix.disable-gil }}
133+
with:
134+
context: .
135+
file: './docker/Dockerfile.nogil'
136+
tags: ubuntu-nogil
137+
114138
- name: ICX image
115139
uses: docker/build-push-action@v6
116140
with:
117141
context: .
118142
file: './docker/Dockerfile.intel'
119143
push: true
120144
target: 'icx'
121-
build-args: 'arch=icx'
122-
tags: 'devitocodes/bases:cpu-icx'
145+
build-args: |
146+
arch=icx
147+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
148+
tags: devitocodes/bases:cpu-icx${{ matrix.disable-gil && '-nogil' || '' }}
123149

124150
- name: SYCL CPU image
125151
uses: docker/build-push-action@v6
@@ -128,8 +154,10 @@ jobs:
128154
file: './docker/Dockerfile.intel'
129155
push: true
130156
target: 'cpu-sycl'
131-
build-args: 'arch=cpu-sycl'
132-
tags: 'devitocodes/bases:cpu-sycl'
157+
build-args: |
158+
arch=cpu-sycl
159+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
160+
tags: devitocodes/bases:cpu-sycl${{ matrix.disable-gil && '-nogil' || '' }}
133161

134162
- name: SYCL GPU image
135163
uses: docker/build-push-action@v6
@@ -138,8 +166,10 @@ jobs:
138166
file: './docker/Dockerfile.intel'
139167
push: true
140168
target: 'gpu-sycl'
141-
build-args: 'arch=gpu-sycl'
142-
tags: 'devitocodes/bases:gpu-sycl'
169+
build-args: |
170+
arch=gpu-sycl
171+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
172+
tags: devitocodes/bases:gpu-sycl${{ matrix.disable-gil && '-nogil' || '' }}
143173

144174
#######################################################
145175
################### Nvidia nvhpc ######################
@@ -151,6 +181,10 @@ jobs:
151181
env:
152182
DOCKER_BUILDKIT: "1"
153183

184+
strategy:
185+
matrix:
186+
disable-gil: [false, true]
187+
154188
steps:
155189
- name: Checkout devito
156190
uses: actions/checkout@v4
@@ -173,15 +207,25 @@ jobs:
173207
- name: cleanup
174208
run: docker system prune -a -f
175209

210+
- name: Build free-threaded base image
211+
uses: docker/build-push-action@v6
212+
if: ${{ matrix.disable-gil }}
213+
with:
214+
context: .
215+
file: './docker/Dockerfile.nogil'
216+
tags: ubuntu-nogil
217+
176218
- name: NVC image
177219
uses: docker/build-push-action@v6
178220
with:
179221
context: .
180222
file: './docker/Dockerfile.nvidia'
181223
push: true
182224
target: 'nvc'
183-
build-args: 'arch=nvc'
184-
tags: 'devitocodes/bases:nvidia-nvc'
225+
build-args: |
226+
arch=nvc
227+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
228+
tags: devitocodes/bases:nvidia-nvc${{ matrix.disable-gil && '-nogil' || '' }}
185229

186230
- name: NVCC image
187231
uses: docker/build-push-action@v6
@@ -190,8 +234,10 @@ jobs:
190234
file: './docker/Dockerfile.nvidia'
191235
push: true
192236
target: 'nvcc'
193-
build-args: 'arch=nvcc'
194-
tags: 'devitocodes/bases:nvidia-nvcc'
237+
build-args: |
238+
arch=nvcc
239+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
240+
tags: devitocodes/bases:nvidia-nvcc${{ matrix.disable-gil && '-nogil' || '' }}
195241

196242
- name: NVC host image
197243
uses: docker/build-push-action@v6
@@ -200,8 +246,10 @@ jobs:
200246
file: './docker/Dockerfile.nvidia'
201247
push: true
202248
target: 'nvc-host'
203-
build-args: 'arch=nvc-host'
204-
tags: 'devitocodes/bases:cpu-nvc'
249+
build-args: |
250+
arch=nvc-host
251+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
252+
tags: devitocodes/bases:cpu-nvc${{ matrix.disable-gil && '-nogil' || '' }}
205253

206254
#######################################################
207255
##################### AMD #############################
@@ -213,6 +261,10 @@ jobs:
213261
env:
214262
DOCKER_BUILDKIT: "1"
215263

264+
strategy:
265+
matrix:
266+
disable-gil: [false, true]
267+
216268
steps:
217269
- name: Checkout devito
218270
uses: actions/checkout@v4
@@ -235,6 +287,14 @@ jobs:
235287
- name: cleanup
236288
run: docker system prune -a -f
237289

290+
- name: Build free-threaded base image
291+
uses: docker/build-push-action@v6
292+
if: ${{ matrix.disable-gil }}
293+
with:
294+
context: .
295+
file: './docker/Dockerfile.nogil'
296+
tags: ubuntu-nogil
297+
238298
- name: AMD image
239299
uses: docker/build-push-action@v6
240300
with:
@@ -246,7 +306,8 @@ jobs:
246306
ROCM_VERSION=5.5.1
247307
UCX_BRANCH=v1.13.1
248308
OMPI_BRANCH=v4.1.4
249-
tags: devitocodes/bases:amd
309+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
310+
tags: devitocodes/bases:amd${{ matrix.disable-gil && '-nogil' || '' }}
250311

251312
- name: AMD HIP image
252313
uses: docker/build-push-action@v6
@@ -257,4 +318,5 @@ jobs:
257318
target: 'hip'
258319
build-args: |
259320
ROCM_VERSION=6.3.4
260-
tags: devitocodes/bases:amd-hip
321+
${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
322+
tags: devitocodes/bases:amd-hip${{ matrix.disable-gil && '-nogil' || '' }}

0 commit comments

Comments
 (0)