@@ -40,7 +40,7 @@ permissions: {}
4040
4141jobs :
4242 sdist :
43- runs-on : ubuntu-20.04
43+ runs-on : ubuntu-latest
4444
4545 permissions :
4646 contents : write # to create GitHub release (softprops/action-gh-release)
6868 name : sdist
6969 path : dist/*.tar.gz
7070
71- - name : Release
72- uses : softprops/action-gh-release@v2
73- if : startsWith(github.ref, 'refs/tags/')
74- with :
75- files : dist/*.tar.gz
76-
7771 generate-wheels-matrix :
7872 # Create a matrix of all architectures & versions to build.
7973 # This enables the next step to run cibuildwheel in parallel.
@@ -86,13 +80,14 @@ jobs:
8680 - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
8781 - name : Install cibuildwheel
8882 # Nb. keep cibuildwheel version pin consistent with job below
89- run : pipx install cibuildwheel==2.16.5
83+ run : pipx install cibuildwheel==2.22.0
9084 - id : set-matrix
9185 run : |
9286 MATRIX=$(
9387 {
9488 cibuildwheel --print-build-identifiers --platform linux \
9589 | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
90+ | sed -e '/aarch64/s|ubuntu-latest|ubuntu-24.04-arm|' \
9691 && cibuildwheel --print-build-identifiers --platform macos \
9792 | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
9893 && cibuildwheel --print-build-identifiers --platform windows \
@@ -134,8 +129,20 @@ jobs:
134129 brew install automake libtool
135130 ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
136131
132+ - name : Setup Visual Studio for x64
133+ if : contains(matrix.os, 'windows') && contains(matrix.only, 'win_amd64')
134+ uses : TheMrMilchmann/setup-msvc-dev@v3
135+ with :
136+ arch : x64
137+
138+ - name : Setup Visual Studio for x86
139+ if : contains(matrix.os, 'windows') && contains(matrix.only, 'win32')
140+ uses : TheMrMilchmann/setup-msvc-dev@v3
141+ with :
142+ arch : x86
143+
137144 - name : Build wheels
138- uses : pypa/cibuildwheel@v2.16.5
145+ uses : pypa/cibuildwheel@v2.22.0
139146 with :
140147 only : ${{ matrix.only }}
141148
@@ -146,7 +153,7 @@ jobs:
146153
147154 upload_release_assets :
148155 name : Upload Release Wheels
149- needs : [ build_wheels, Linux, non-Linux ]
156+ needs : [ build_wheels, Linux ]
150157 runs-on : ubuntu-latest
151158 if : startsWith(github.ref, 'refs/tags')
152159
@@ -171,10 +178,11 @@ jobs:
171178 - name : Release
172179 uses : softprops/action-gh-release@v2
173180 with :
174- files : ./bdist_downloads/*.whl
181+ files : |
182+ ./bdist_downloads/*.whl
183+ ./bdist_downloads/*.tar.gz
175184
176185 Linux :
177- runs-on : ubuntu-latest
178186
179187 strategy :
180188 # Allows for matrix sub-jobs to fail without canceling the rest
@@ -185,10 +193,17 @@ jobs:
185193 - manylinux2014_x86_64
186194 - manylinux2014_i686
187195 pyversion : ["*"]
196+ os : ubuntu-latest
188197
189198 include :
190199 - image : manylinux2014_aarch64
191200 pyversion : " cp36*"
201+ os : ubuntu-24.04-arm
202+ - image : manylinux2014_aarch64
203+ pyversion : " cp37*"
204+ os : ubuntu-24.04-arm
205+
206+ runs-on : ${{ matrix.os }}
192207
193208 steps :
194209 - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -199,7 +214,7 @@ jobs:
199214 - name : Set up Python
200215 uses : actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
201216 with :
202- python-version : " 3.9 "
217+ python-version : " 3.12 "
203218
204219 - name : Install dependencies
205220 run : python -m pip install -r requirements.txt
@@ -214,68 +229,3 @@ jobs:
214229 name : wheels-${{ matrix.image }}
215230 path : wheelhouse_*/*-m*linux*.whl # manylinux / musllinux
216231 if-no-files-found : ignore
217-
218- non-Linux :
219- strategy :
220- # Allows for matrix sub-jobs to fail without canceling the rest
221- fail-fast : false
222-
223- matrix :
224- os :
225- - macos-12
226- # - windows-2019
227- pyversion :
228- - " 2.7"
229- - " 3.6"
230- # - "pypy-3.7-v7.3.7"
231- # - "pypy-3.8-v7.3.7"
232- # - "pypy-3.9-v7.3.11"
233- # - "pypy-3.10-v7.3.13"
234-
235- exclude :
236- # outdated compilers and probably not worth supporting anymore
237- - os : windows-2019
238- pyversion : " 2.7"
239-
240- runs-on : ${{ matrix.os }}
241- env :
242- USE_BUNDLE : " true"
243- MACOSX_DEPLOYMENT_TARGET : " 11.0"
244- LUPA_WITH_LUA_DLOPEN : ${{ startsWith(matrix.os, 'windows') && 'false' || 'true' }}
245- PYTHON_BIN_DIR : ${{ startsWith(matrix.pyversion, '2.') && '/Library/Frameworks/Python.framework/Versions/2.7/bin' || '' }}
246-
247- steps :
248- - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
249-
250- - name : Check out recursively
251- run : git submodule update --init --recursive
252-
253- - name : Set up Python
254- uses : actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
255- # macOS has Py2.7 installed system wide
256- if : matrix.pyversion != '2.7'
257- with :
258- python-version : ${{ matrix.pyversion }}
259-
260- - name : Install MacOS dependencies
261- if : startsWith(matrix.os, 'mac')
262- run : |
263- brew install automake libtool
264- ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
265-
266- - name : Install dependencies
267- run : |
268- export PATH=$PYTHON_BIN_DIR:$PATH
269- python -m pip install setuptools wheel -r requirements.txt
270-
271- - name : Build wheels
272- run : |
273- export PATH=$PYTHON_BIN_DIR:$PATH
274- python setup.py --with-cython sdist ${{ contains(matrix.pyversion, '3.') && 'build_ext -j6' || '' }} bdist_wheel
275-
276- - name : Upload wheels
277- uses : actions/upload-artifact@694cdabd8bdb0f10b2cea11669e1bf5453eed0a6 # v4.2.0
278- with :
279- name : wheels-${{ matrix.pyversion }}-${{ matrix.os }}
280- path : dist/*.whl
281- if-no-files-found : ignore
0 commit comments