45
45
fail-fast : false
46
46
matrix :
47
47
include :
48
- # NOTE: aarch64 builds are super slow due to QEMU emulation. Making this to parallelize and speed up workflow
48
+ # NOTE: Doing this to parallelize and speed up workflow
49
49
# i686 - manylinux
50
50
- { os: ubuntu-latest, arch: i686, cibw_build: 'cp38-manylinux*', cibw_skip: '' }
51
51
# i686 - musllinux
@@ -55,13 +55,13 @@ jobs:
55
55
# x86_64 - musllinux
56
56
- { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp38-musllinux*', cibw_skip: '' }
57
57
# aarch64 - manylinux
58
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp38-manylinux*', cibw_skip: '' }
58
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp38-manylinux*', cibw_skip: '' }
59
59
# aarch64 - musllinux
60
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp38-musllinux*', cibw_skip: '' }
60
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp38-musllinux*', cibw_skip: '' }
61
61
- { os: macos-13, arch: x86_64, cibw_build: 'cp38*', cibw_skip: '' }
62
62
- { os: macos-latest, arch: arm64, cibw_build: 'cp38*', cibw_skip: '' }
63
- - { os: windows-2019 , arch: AMD64, cibw_build: 'cp38*', cibw_skip: '' }
64
- - { os: windows-2019 , arch: x86, cibw_build: 'cp38*', cibw_skip: '' }
63
+ - { os: windows-2022 , arch: AMD64, cibw_build: 'cp38*', cibw_skip: '' }
64
+ - { os: windows-2022 , arch: x86, cibw_build: 'cp38*', cibw_skip: '' }
65
65
66
66
steps :
67
67
- uses : actions/checkout@v4
@@ -79,15 +79,16 @@ jobs:
79
79
80
80
- name : " Increase pagefile to avoid OOM"
81
81
if : runner.os == 'Windows'
82
- uses : al-cheb/configure-pagefile-action@v1.2
82
+ uses : al-cheb/configure-pagefile-action@v1.4
83
83
with :
84
84
minimum-size : 8GB
85
+ disk-root : " C:"
85
86
86
87
- name : ' 🛠️ Add msbuild to PATH'
87
88
if : runner.os == 'Windows'
88
89
uses : microsoft/setup-msbuild@v2
89
90
with :
90
- vs-version : ' 16.5 '
91
+ vs-version : ' 17 '
91
92
92
93
# https://cibuildwheel.pypa.io/en/stable/faq/#macos-building-cpython-38-wheels-on-arm64
93
94
- uses : actions/setup-python@v5
@@ -108,7 +109,7 @@ jobs:
108
109
arch : x64
109
110
110
111
- name : ' 🛠️ Set up QEMU'
111
- if : runner.os == 'Linux' && matrix.arch != 'x86_64 '
112
+ if : runner.os == 'Linux' && matrix.arch == 'i686 '
112
113
uses : docker/setup-qemu-action@v3
113
114
114
115
- name : ' 🚧 cibuildwheel run'
@@ -118,7 +119,7 @@ jobs:
118
119
CIBW_BUILD : ${{ matrix.cibw_build }}
119
120
CIBW_SKIP : ${{ matrix.cibw_skip }}
120
121
CIBW_ARCHS : ${{ matrix.arch }}
121
- CIBW_ENVIRONMENT : DEBUG=${{ env.UNICORN_DEBUG }}
122
+ CIBW_ENVIRONMENT : DEBUG=${{ env.UNICORN_DEBUG }} GENERATORS='Visual Studio 17 2022'
122
123
CIBW_ENVIRONMENT_PASS_LINUX : DEBUG
123
124
CIBW_TEST_EXTRAS : test
124
125
CIBW_TEST_COMMAND : ' python -m unittest discover -v {project}/tests/regress "*.py"'
@@ -138,21 +139,21 @@ jobs:
138
139
python3 -m wheel tags --python-tag='py2' --abi-tag=none wheelhouse/*cp38*.whl
139
140
140
141
-
uses :
LizardByte/[email protected]
141
- if : (matrix .os == 'ubuntu-latest ' && matrix.arch == 'x86_64' && matrix.cibw_build == 'cp38-manylinux*') || matrix .os == 'macos-latest' || (matrix .os == 'windows-2019 ' && matrix.arch == 'AMD64')
142
+ if : (runner .os == 'Linux ' && ( matrix.arch == 'x86_64' || matrix.arch == 'aarch64') && matrix.cibw_build == 'cp38-manylinux*') || (runner .os == 'macOS' && matrix.arch == 'arm64') || (runner .os == 'Windows ' && matrix.arch == 'AMD64')
142
143
with :
143
144
python-version : 2.7
144
145
145
146
# we install and test python2.7 wheels only on native arch
146
147
- name : ' Python 2.7 tests - Windows'
147
- if : matrix .os == 'windows-2019 ' && matrix.arch == 'AMD64'
148
+ if : runner .os == 'Windows ' && matrix.arch == 'AMD64'
148
149
shell : bash
149
150
run : |
150
151
C:/Python27/python.exe -m pip install capstone==4.0.2 wheelhouse/*py2*.whl
151
152
C:/Python27/python.exe -m unittest discover tests/regress "*.py"
152
153
153
154
# NOTE: no python2.7 support for macos-13: https://github.com/LizardByte/setup-python-action/issues/2
154
155
- name : ' Python 2.7 tests - Non-Windows'
155
- if : (matrix .os == 'ubuntu-latest ' && matrix.arch == 'x86_64' && matrix.cibw_build == 'cp38-manylinux*') || matrix .os == 'macos-latest'
156
+ if : (runner .os == 'Linux ' && ( matrix.arch == 'x86_64' || matrix.arch == 'aarch64') && matrix.cibw_build == 'cp38-manylinux*') || (runner .os == 'macOS' && matrix.arch == 'arm64')
156
157
run : |
157
158
python2 -m pip install capstone==4.0.2 wheelhouse/*py2*.whl
158
159
python2 -m unittest discover tests/regress "*.py"
@@ -170,7 +171,7 @@ jobs:
170
171
fail-fast : false
171
172
matrix :
172
173
include :
173
- # NOTE: aarch64 builds are super slow due to QEMU emulation. Making this to parallelize and speed up workflow
174
+ # NOTE: Doing this to parallelize and speed up workflow
174
175
# i686 - manylinux
175
176
- { os: ubuntu-latest, arch: i686, cibw_build: 'cp37-manylinux*', cibw_skip: '' }
176
177
- { os: ubuntu-latest, arch: i686, cibw_build: 'cp39-manylinux*', cibw_skip: '' }
@@ -200,23 +201,23 @@ jobs:
200
201
- { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp312-musllinux*', cibw_skip: '' }
201
202
- { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp313-musllinux*', cibw_skip: '' }
202
203
# aarch64 - manylinux
203
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp37-manylinux*', cibw_skip: '' }
204
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp39-manylinux*', cibw_skip: '' }
205
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp310-manylinux*', cibw_skip: '' }
206
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp311-manylinux*', cibw_skip: '' }
207
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp312-manylinux*', cibw_skip: '' }
208
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp313-manylinux*', cibw_skip: '' }
204
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp37-manylinux*', cibw_skip: '' }
205
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp39-manylinux*', cibw_skip: '' }
206
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp310-manylinux*', cibw_skip: '' }
207
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp311-manylinux*', cibw_skip: '' }
208
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp312-manylinux*', cibw_skip: '' }
209
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp313-manylinux*', cibw_skip: '' }
209
210
# aarch64 - musllinux
210
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp37-musllinux*', cibw_skip: '' }
211
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp39-musllinux*', cibw_skip: '' }
212
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp310-musllinux*', cibw_skip: '' }
213
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp311-musllinux*', cibw_skip: '' }
214
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp312-musllinux*', cibw_skip: '' }
215
- - { os: ubuntu-22 .04, arch: aarch64, cibw_build: 'cp313-musllinux*', cibw_skip: '' }
211
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp37-musllinux*', cibw_skip: '' }
212
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp39-musllinux*', cibw_skip: '' }
213
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp310-musllinux*', cibw_skip: '' }
214
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp311-musllinux*', cibw_skip: '' }
215
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp312-musllinux*', cibw_skip: '' }
216
+ - { os: ubuntu-24 .04-arm , arch: aarch64, cibw_build: 'cp313-musllinux*', cibw_skip: '' }
216
217
- { os: macos-13, arch: x86_64, cibw_build: 'cp*', cibw_skip: '*36* *38*' }
217
218
- { os: macos-latest, arch: arm64, cibw_build: 'cp*', cibw_skip: '*36* *37* *38*' }
218
- - { os: windows-2019 , arch: AMD64, cibw_build: 'cp*', cibw_skip: '*36* *38*' }
219
- - { os: windows-2019 , arch: x86, cibw_build: 'cp*', cibw_skip: '*36* *38*' }
219
+ - { os: windows-2022 , arch: AMD64, cibw_build: 'cp*', cibw_skip: '*36* *38*' }
220
+ - { os: windows-2022 , arch: x86, cibw_build: 'cp*', cibw_skip: '*36* *38*' }
220
221
if : ${{ inputs.fullMode == 1 || startsWith(github.ref, 'refs/tags') || contains(github.event.head_commit.message, 'CI(full)') }}
221
222
steps :
222
223
- uses : actions/checkout@v4
@@ -234,15 +235,16 @@ jobs:
234
235
235
236
- name : " Increase pagefile to avoid OOM"
236
237
if : runner.os == 'Windows'
237
- uses : al-cheb/configure-pagefile-action@v1.2
238
+ uses : al-cheb/configure-pagefile-action@v1.4
238
239
with :
239
240
minimum-size : 8GB
241
+ disk-root : " C:"
240
242
241
243
- name : ' 🛠️ Add msbuild to PATH'
242
244
if : runner.os == 'Windows'
243
245
uses : microsoft/setup-msbuild@v2
244
246
with :
245
- vs-version : ' 16.5 '
247
+ vs-version : ' 17 '
246
248
247
249
- name : ' 🛠️ Win MSVC 32 dev cmd setup'
248
250
if : runner.os == 'Windows' && matrix.arch == 'x86'
@@ -257,7 +259,7 @@ jobs:
257
259
arch : x64
258
260
259
261
- name : ' 🛠️ Set up QEMU'
260
- if : runner.os == 'Linux' && matrix.arch != 'x86_64 '
262
+ if : runner.os == 'Linux' && matrix.arch == 'i686 '
261
263
uses : docker/setup-qemu-action@v3
262
264
263
265
- name : ' 🚧 cibuildwheel run'
@@ -267,7 +269,7 @@ jobs:
267
269
CIBW_BUILD : ${{ matrix.cibw_build }}
268
270
CIBW_SKIP : ${{ matrix.cibw_skip }}
269
271
CIBW_ARCHS : ${{ matrix.arch }}
270
- CIBW_ENVIRONMENT : DEBUG=${{ env.UNICORN_DEBUG }}
272
+ CIBW_ENVIRONMENT : DEBUG=${{ env.UNICORN_DEBUG }} GENERATORS='Visual Studio 17 2022'
271
273
CIBW_ENVIRONMENT_PASS_LINUX : DEBUG
272
274
CIBW_TEST_EXTRAS : test
273
275
CIBW_TEST_COMMAND : ' python -m unittest discover -v {project}/tests/regress "*.py"'
@@ -293,6 +295,9 @@ jobs:
293
295
cd bindings/python
294
296
python3 -m pip install -U pip build
295
297
python3 -m build --sdist
298
+ python3 -m pip install dist/*.tar.gz
299
+ cd ~
300
+ python3 -c 'import unicorn; print(f"Unicorn version installed from sdist: {unicorn.__version__}")'
296
301
297
302
- uses : actions/upload-artifact@v4
298
303
with :
0 commit comments