Skip to content

Commit b46536f

Browse files
committed
ci: Separate job for nogil base
1 parent 6a3636c commit b46536f

File tree

1 file changed

+83
-54
lines changed

1 file changed

+83
-54
lines changed

.github/workflows/docker-bases.yml

Lines changed: 83 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,43 @@ on:
3434
- cron: "0 0 1 * *"
3535

3636
jobs:
37+
#######################################################
38+
########### Free-threaded Python meta-base ############
39+
#######################################################
40+
deploy-nogil-base:
41+
name: "python-nogil-base"
42+
runs-on: ubuntu-latest
43+
env:
44+
DOCKER_BUILDKIT: "1"
45+
46+
steps:
47+
- name: Checkout devito
48+
uses: actions/checkout@v4
49+
50+
- name: Check event name
51+
run: echo ${{ github.event_name }}
52+
53+
- name: Set up QEMU
54+
uses: docker/setup-qemu-action@v3
55+
56+
- name: Set up Docker Buildx
57+
uses: docker/setup-buildx-action@v3
58+
59+
- name: Login to DockerHub
60+
uses: docker/login-action@v3
61+
with:
62+
username: ${{ secrets.DOCKER_USERNAME }}
63+
password: ${{ secrets.DOCKER_PASSWORD }}
64+
65+
- name: Build free-threaded Python base
66+
uses: docker/build-push-action@v6
67+
if: ${{ matrix.disable-gil }}
68+
with:
69+
context: .
70+
file: "./docker/Dockerfile.nogil"
71+
push: true
72+
tags: "devitocodes/bases:python-nogil"
73+
3774
#######################################################
3875
############## Basic gcc CPU ##########################
3976
#######################################################
@@ -47,7 +84,13 @@ jobs:
4784
strategy:
4885
matrix:
4986
gcc: ["", "14"]
50-
disable-gil: [false, true]
87+
include:
88+
- disable-gil: false
89+
build-args: ""
90+
suffix: ""
91+
- disable-gil: true
92+
build-args: "base=devitocodes/bases:python-nogil"
93+
suffix: "-nogil"
5194

5295
steps:
5396
- name: Checkout devito
@@ -68,14 +111,6 @@ jobs:
68111
username: ${{ secrets.DOCKER_USERNAME }}
69112
password: ${{ secrets.DOCKER_PASSWORD }}
70113

71-
- name: Build free-threaded base image
72-
uses: docker/build-push-action@v6
73-
if: ${{ matrix.disable-gil }}
74-
with:
75-
context: .
76-
file: "./docker/Dockerfile.nogil"
77-
tags: "ubuntu-nogil"
78-
79114
- name: GCC image
80115
uses: docker/build-push-action@v6
81116
with:
@@ -84,8 +119,8 @@ jobs:
84119
push: true
85120
build-args: |
86121
gcc=${{ matrix.gcc }}
87-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
88-
tags: "devitocodes/bases:cpu-gcc${{ matrix.gcc }}${{ matrix.disable-gil && '-nogil' || '' }}"
122+
${{ matrix.build-args }}
123+
tags: "devitocodes/bases:cpu-gcc${{ matrix.gcc }}${{ matrix.suffix }}"
89124

90125

91126
#######################################################
@@ -100,7 +135,13 @@ jobs:
100135

101136
strategy:
102137
matrix:
103-
disable-gil: [false, true]
138+
include:
139+
- disable-gil: false
140+
build-args: ""
141+
suffix: ""
142+
- disable-gil: true
143+
build-args: "base=devitocodes/bases:python-nogil"
144+
suffix: "-nogil"
104145

105146
steps:
106147
- name: Checkout devito
@@ -121,14 +162,6 @@ jobs:
121162
username: ${{ secrets.DOCKER_USERNAME }}
122163
password: ${{ secrets.DOCKER_PASSWORD }}
123164

124-
- name: Build free-threaded base image
125-
uses: docker/build-push-action@v6
126-
if: ${{ matrix.disable-gil }}
127-
with:
128-
context: .
129-
file: "./docker/Dockerfile.nogil"
130-
tags: "ubuntu-nogil"
131-
132165
- name: ICX image
133166
uses: docker/build-push-action@v6
134167
with:
@@ -138,8 +171,8 @@ jobs:
138171
target: "icx"
139172
build-args: |
140173
arch=icx
141-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
142-
tags: "devitocodes/bases:cpu-icx${{ matrix.disable-gil && '-nogil' || '' }}"
174+
${{ matrix.build-args }}
175+
tags: "devitocodes/bases:cpu-icx${{ matrix.suffix }}"
143176

144177
- name: SYCL CPU image
145178
uses: docker/build-push-action@v6
@@ -150,8 +183,8 @@ jobs:
150183
target: "cpu-sycl"
151184
build-args: |
152185
arch=cpu-sycl
153-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
154-
tags: "devitocodes/bases:cpu-sycl${{ matrix.disable-gil && '-nogil' || '' }}"
186+
${{ matrix.build-args }}
187+
tags: "devitocodes/bases:cpu-sycl${{ matrix.suffix }}"
155188

156189
- name: SYCL GPU image
157190
uses: docker/build-push-action@v6
@@ -162,8 +195,8 @@ jobs:
162195
target: "gpu-sycl"
163196
build-args: |
164197
arch=gpu-sycl
165-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
166-
tags: "devitocodes/bases:gpu-sycl${{ matrix.disable-gil && '-nogil' || '' }}"
198+
${{ matrix.build-args }}
199+
tags: "devitocodes/bases:gpu-sycl${{ matrix.suffix }}"
167200

168201
#######################################################
169202
################### Nvidia nvhpc ######################
@@ -177,7 +210,13 @@ jobs:
177210

178211
strategy:
179212
matrix:
180-
disable-gil: [false, true]
213+
include:
214+
- disable-gil: false
215+
build-args: ""
216+
suffix: ""
217+
- disable-gil: true
218+
build-args: "base=devitocodes/bases:python-nogil"
219+
suffix: "-nogil"
181220

182221
steps:
183222
- name: Checkout devito
@@ -198,14 +237,6 @@ jobs:
198237
username: ${{ secrets.DOCKER_USERNAME }}
199238
password: ${{ secrets.DOCKER_PASSWORD }}
200239

201-
- name: Build free-threaded base image
202-
uses: docker/build-push-action@v6
203-
if: ${{ matrix.disable-gil }}
204-
with:
205-
context: .
206-
file: "./docker/Dockerfile.nogil"
207-
tags: "ubuntu-nogil"
208-
209240
- name: NVC image
210241
uses: docker/build-push-action@v6
211242
with:
@@ -215,10 +246,10 @@ jobs:
215246
target: "nvc"
216247
build-args: |
217248
arch=nvc
218-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
249+
${{ matrix.build-args }}
219250
# Label (not tag) with runner name for traceability without changing image tags
220251
labels: builder-runner=${{ runner.name }}
221-
tags: "devitocodes/bases:nvidia-nvc${{ matrix.disable-gil && '-nogil' || '' }}"
252+
tags: "devitocodes/bases:nvidia-nvc${{ matrix.suffix }}"
222253

223254
- name: NVCC image
224255
uses: docker/build-push-action@v6
@@ -229,9 +260,9 @@ jobs:
229260
target: "nvcc"
230261
build-args: |
231262
arch=nvcc
232-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
263+
${{ matrix.build-args }}
233264
labels: builder-runner=${{ runner.name }}
234-
tags: "devitocodes/bases:nvidia-nvcc${{ matrix.disable-gil && '-nogil' || '' }}"
265+
tags: "devitocodes/bases:nvidia-nvcc${{ matrix.suffix }}"
235266

236267
- name: NVC host image
237268
uses: docker/build-push-action@v6
@@ -242,9 +273,9 @@ jobs:
242273
target: "nvc-host"
243274
build-args: |
244275
arch=nvc-host
245-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
276+
${{ matrix.build-args }}
246277
labels: builder-runner=${{ runner.name }}
247-
tags: "devitocodes/bases:cpu-nvc${{ matrix.disable-gil && '-nogil' || '' }}"
278+
tags: "devitocodes/bases:cpu-nvc${{ matrix.suffix }}"
248279

249280
#######################################################
250281
##################### AMD #############################
@@ -258,7 +289,13 @@ jobs:
258289

259290
strategy:
260291
matrix:
261-
disable-gil: [false, true]
292+
include:
293+
- disable-gil: false
294+
build-args: ""
295+
suffix: ""
296+
- disable-gil: true
297+
build-args: "base=devitocodes/bases:python-nogil"
298+
suffix: "-nogil"
262299

263300
steps:
264301
- name: Checkout devito
@@ -279,14 +316,6 @@ jobs:
279316
username: ${{ secrets.DOCKER_USERNAME }}
280317
password: ${{ secrets.DOCKER_PASSWORD }}
281318

282-
- name: Build free-threaded base image
283-
uses: docker/build-push-action@v6
284-
if: ${{ matrix.disable-gil }}
285-
with:
286-
context: .
287-
file: "./docker/Dockerfile.nogil"
288-
tags: "ubuntu-nogil"
289-
290319
- name: AMD image
291320
uses: docker/build-push-action@v6
292321
with:
@@ -298,8 +327,8 @@ jobs:
298327
ROCM_VERSION=5.5.1
299328
UCX_BRANCH=v1.13.1
300329
OMPI_BRANCH=v4.1.4
301-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
302-
tags: devitocodes/bases:amd${{ matrix.disable-gil && '-nogil' || '' }}
330+
${{ matrix.build-args }}
331+
tags: devitocodes/bases:amd${{ matrix.suffix }}
303332

304333
- name: AMD HIP image
305334
uses: docker/build-push-action@v6
@@ -310,5 +339,5 @@ jobs:
310339
target: "hip"
311340
build-args: |
312341
ROCM_VERSION=6.3.4
313-
${{ matrix.disable-gil && 'base=ubuntu-nogil' || '' }}
314-
tags: devitocodes/bases:amd-hip${{ matrix.disable-gil && '-nogil' || '' }}
342+
${{ matrix.build-args }}
343+
tags: devitocodes/bases:amd-hip${{ matrix.suffix }}

0 commit comments

Comments
 (0)