Skip to content

Commit ed7bf4a

Browse files
authored
build arm64 linux wheels in GHA and drop manylinux_2_24 wheels (#8085)
* build arm64 linux wheels in GHA and drop manylinux_2_24 wheels the image is unsupported as of two weeks ago and no one requires them (we have manylinux2014 aka manylinux_2_17 still) * remove unneeded excludes
1 parent b40e3f6 commit ed7bf4a

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

.github/workflows/wheel-builder.yml

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848

4949
manylinux:
5050
needs: [sdist]
51-
runs-on: ubuntu-latest
51+
runs-on: ${{ matrix.MANYLINUX.RUNNER }}
5252
container: ghcr.io/pyca/${{ matrix.MANYLINUX.CONTAINER }}
5353
strategy:
5454
fail-fast: false
@@ -58,18 +58,44 @@ jobs:
5858
- { VERSION: "pp38-pypy38_pp73" }
5959
- { VERSION: "pp39-pypy39_pp73" }
6060
MANYLINUX:
61-
- { NAME: "manylinux2014_x86_64", CONTAINER: "cryptography-manylinux2014:x86_64" }
62-
- { NAME: "manylinux_2_24_x86_64", CONTAINER: "cryptography-manylinux_2_24:x86_64"}
63-
- { NAME: "manylinux_2_28_x86_64", CONTAINER: "cryptography-manylinux_2_28:x86_64"}
64-
- { NAME: "musllinux_1_1_x86_64", CONTAINER: "cryptography-musllinux_1_1:x86_64"}
61+
- { NAME: "manylinux2014_x86_64", CONTAINER: "cryptography-manylinux2014:x86_64", RUNNER: "ubuntu-latest" }
62+
- { NAME: "manylinux_2_28_x86_64", CONTAINER: "cryptography-manylinux_2_28:x86_64", RUNNER: "ubuntu-latest"}
63+
- { NAME: "musllinux_1_1_x86_64", CONTAINER: "cryptography-musllinux_1_1:x86_64", RUNNER: "ubuntu-latest"}
64+
65+
- { NAME: "manylinux2014_aarch64", CONTAINER: "cryptography-manylinux2014_aarch64", RUNNER: [self-hosted, Linux, ARM64] }
66+
- { NAME: "manylinux_2_28_aarch64", CONTAINER: "cryptography-manylinux_2_28:aarch64", RUNNER: [self-hosted, Linux, ARM64]}
67+
- { NAME: "musllinux_1_1_aarch64", CONTAINER: "cryptography-musllinux_1_1:aarch64", RUNNER: [self-hosted, Linux, ARM64]}
6568
exclude:
6669
# There are no readily available musllinux PyPy distributions
6770
- PYTHON: { VERSION: "pp38-pypy38_pp73" }
68-
MANYLINUX: { NAME: "musllinux_1_1_x86_64", CONTAINER: "cryptography-musllinux_1_1:x86_64"}
71+
MANYLINUX: { NAME: "musllinux_1_1_x86_64", CONTAINER: "cryptography-musllinux_1_1:x86_64", RUNNER: "ubuntu-latest"}
72+
- PYTHON: { VERSION: "pp39-pypy39_pp73" }
73+
MANYLINUX: { NAME: "musllinux_1_1_x86_64", CONTAINER: "cryptography-musllinux_1_1:x86_64", RUNNER: "ubuntu-latest"}
74+
- PYTHON: { VERSION: "pp38-pypy38_pp73" }
75+
MANYLINUX: { NAME: "musllinux_1_1_aarch64", CONTAINER: "cryptography-musllinux_1_1:aarch64", RUNNER: [self-hosted, Linux, ARM64]}
76+
- PYTHON: { VERSION: "pp39-pypy39_pp73" }
77+
MANYLINUX: { NAME: "musllinux_1_1_aarch64", CONTAINER: "cryptography-musllinux_1_1:aarch64", RUNNER: [self-hosted, Linux, ARM64]}
78+
# We also don't build pypy wheels for anything except the latest manylinux
79+
- PYTHON: { VERSION: "pp38-pypy38_pp73" }
80+
MANYLINUX: { NAME: "manylinux2014_x86_64", CONTAINER: "cryptography-manylinux2014:x86_64", RUNNER: "ubuntu-latest"}
6981
- PYTHON: { VERSION: "pp39-pypy39_pp73" }
70-
MANYLINUX: { NAME: "musllinux_1_1_x86_64", CONTAINER: "cryptography-musllinux_1_1:x86_64"}
82+
MANYLINUX: { NAME: "manylinux2014_x86_64", CONTAINER: "cryptography-manylinux2014:x86_64", RUNNER: "ubuntu-latest"}
83+
- PYTHON: { VERSION: "pp38-pypy38_pp73" }
84+
MANYLINUX: { NAME: "manylinux2014_aarch64", CONTAINER: "cryptography-manylinux2014_aarch64", RUNNER: [self-hosted, Linux, ARM64]}
85+
- PYTHON: { VERSION: "pp39-pypy39_pp73" }
86+
MANYLINUX: { NAME: "manylinux2014_aarch64", CONTAINER: "cryptography-manylinux2014_aarch64", RUNNER: [self-hosted, Linux, ARM64]}
87+
- PYTHON: { VERSION: "pp38-pypy38_pp73" }
7188
name: "${{ matrix.PYTHON.VERSION }} for ${{ matrix.MANYLINUX.NAME }}"
7289
steps:
90+
- name: Ridiculous alpine workaround for actions support on arm64
91+
run: |
92+
# This modifies /etc/os-release so the JS actions
93+
# from GH can't detect that it's on alpine:aarch64. It will
94+
# then use a glibc nodejs, which works fine when gcompat
95+
# is installed in the container (which it is)
96+
sed -i "s:ID=alpine:ID=NotpineForGHA:" /etc/os-release
97+
if: matrix.MANYLINUX.NAME == 'musllinux_1_1_aarch64'
98+
7399
- uses: actions/[email protected]
74100
with:
75101
name: cryptography-sdist

0 commit comments

Comments
 (0)