@@ -32,44 +32,36 @@ jobs:
3232 - name : Build
3333 run : python -m build --sdist
3434
35- - uses : actions/upload-artifact@v3
35+ - uses : actions/upload-artifact@v4
3636 with :
3737 name : sdist
3838 path : dist/*
3939 if-no-files-found : error
4040
4141 # We build for Linux using uraimo/run-on-arch-action@v2, which runs a container under
4242 # the runner in order to reach different platforms (notably Alpine with its musl) and
43- # architectures (notably aarch64) via emulation . uraimo/run-on-arch-action@v2 doesn't
44- # support Mac or Windows, so we run a separate job for those.
43+ # architectures. uraimo/run-on-arch-action@v2 doesn't support Mac or Windows, so we
44+ # run a separate job for those.
4545 linux-wheels :
46- name : Build wheel for ${{ matrix.image }}
47- runs-on : ubuntu-latest
46+ name : Build wheel for ${{ matrix.config. image }} on ${{ matrix.config.os }}
47+ runs-on : ${{ matrix.config.os }}
4848 strategy :
4949 fail-fast : false
5050 matrix :
51- image :
51+ config :
5252 # To maximize compatibility of generated wheels, we should theoreticaly build
5353 # on the *oldest* supported distros.
5454 # But V8 ships its own bullseye sysroot and links against that, so we may as
5555 # well run on bullseye (even though buster would provide an older supported
5656 # build distro):
57- - debian:bullseye
58- - arm64v8/debian:bullseye
59- # Alpine 3.19 includes a clang new enough for V8 to build (with only minor
60- # patches!). Builds on 3.19 seem incompatible with <= 3.18 due to libstdc++
61- # symbols. (And we can't just run on an old Alpine and update clang from the
62- # llvm site, because unlike Debian, the llvm project doesn't maintain
63- # updated packages for old Alpine distros.)
64- - alpine:3.19
65- - arm64v8/alpine:3.19
66- exclude :
67- # The aarch64 builds run really slowly, so let's skip them except for
68- # releases.
69- # For more info on this GitHub Actions hack, see:
70- # https://stackoverflow.com/questions/65384420/how-do-i-make-a-github-action-matrix-element-conditional#answer-73822998
71- - image : ${{ !startsWith(github.ref, 'refs/heads/release/') && 'arm64v8/debian:bullseye' }}
72- - image : ${{ !startsWith(github.ref, 'refs/heads/release/') && 'arm64v8/alpine:3.19' }}
57+ - os : ubuntu-latest # x86_64 base OS (on which we run a container)
58+ image : bullseye
59+ - os : ubuntu-latest
60+ image : arm64v8/alpine:3.19
61+ - os : ubuntu-24.04-arm
62+ image : arm64v8/bullseye
63+ - os : ubuntu-24.04-arm
64+ image : arm64v8/alpine:3.19
7365
7466 steps :
7567 - name : Configure git
9082 with :
9183 arch : none
9284 distro : none
93- base_image : ${{ matrix.image }}
85+ base_image : ${{ matrix.config. image }}
9486
9587 setup : |
9688 mkdir -p "${PWD}/wheels"
10193 shell : /bin/sh
10294
10395 install : |
104- case "${{ matrix.image }}" in
96+ case "${{ matrix.config. image }}" in
10597 *debian*)
10698 # Let's download some system packages!
10799 # Note that the precise list of packages we need is intertwined not just
@@ -232,7 +224,7 @@ jobs:
232224 cp dist/*.whl /wheels/
233225 chmod a+rwx /wheels/*.whl
234226
235- - uses : actions/upload-artifact@v3
227+ - uses : actions/upload-artifact@v4
236228 with :
237229 name : wheels
238230 path : ./wheels/*
@@ -243,7 +235,7 @@ jobs:
243235 with :
244236 arch : none
245237 distro : none
246- base_image : ${{ matrix.image }}
238+ base_image : ${{ matrix.config. image }}
247239
248240 setup : |
249241 mkdir -p "${PWD}/wheels"
@@ -254,7 +246,7 @@ jobs:
254246 shell : /bin/sh
255247
256248 install : |
257- case "${{ matrix.image }}" in
249+ case "${{ matrix.config. image }}" in
258250 *debian*)
259251 PACKAGES=""
260252 PACKAGES="${PACKAGES} python3"
@@ -280,7 +272,7 @@ jobs:
280272
281273 python3 -m venv /venv
282274 . /venv/bin/activate
283- case "${{ matrix.image }}" in
275+ case "${{ matrix.config. image }}" in
284276 *debian*)
285277 python3 -m pip install --upgrade hatch hatch-fancy-pypi-readme hatch-mkdocs
286278 hatch run testinstalled:install /wheels/*.whl
@@ -307,7 +299,7 @@ jobs:
307299 # Note that to maximize compatibility of generated wheels, we build on the
308300 # *oldest* supported GitHub-hosted runners, per
309301 # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
310- - os : windows-2019 # x86_64
302+ - os : windows-latest # x86_64
311303 - os : macos-11 # this is the earliest x86_64 runner
312304 - os : macos-14 # this is the earliest arm64 runner
313305
@@ -336,7 +328,7 @@ jobs:
336328 python3 -m pip install --upgrade build
337329 python3 -m build --wheel
338330
339- - uses : actions/upload-artifact@v3
331+ - uses : actions/upload-artifact@v4
340332 with :
341333 name : wheels
342334 path : dist/*
@@ -359,7 +351,7 @@ jobs:
359351 runs-on : ubuntu-latest
360352
361353 steps :
362- - uses : actions/download-artifact@v3
354+ - uses : actions/download-artifact@v4
363355
364356 - name : Compute release version
365357 run : |
@@ -386,7 +378,7 @@ jobs:
386378 permissions :
387379 id-token : write # IMPORTANT: this permission is mandatory for trusted publishing
388380 steps :
389- - uses : actions/download-artifact@v3
381+ - uses : actions/download-artifact@v4
390382
391383 - name : Make dist directory
392384 run : mkdir dist && cp wheels/* sdist/* dist/
0 commit comments