3434 CAPSTONE_DEBUG : ${{ inputs.debugMode != '' && inputs.debugMode || startsWith(github.ref, 'refs/tags') && '0' || '1' }}
3535
3636jobs :
37- # job to be executed for every push - testing purpose
38- build_wheels_always :
37+ build_and_test_wheels :
3938 name : Building on ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.cibw_build }}
4039 runs-on : ${{ matrix.os }}
4140 strategy :
@@ -44,28 +43,27 @@ jobs:
4443 include :
4544 # NOTE: Making this to parallelize and speed up workflow
4645 # i686 - manylinux
47- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp38-manylinux* cp313 -manylinux*', cibw_skip: '' }
46+ # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp* -manylinux*', cibw_skip: '*36* *37* ' }
4847 # i686 - musllinux
49- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp38-musllinux* cp313 -musllinux*', cibw_skip: '' }
48+ # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp* -musllinux*', cibw_skip: '*36* *37* ' }
5049 # x86_64 - manylinux
51- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp38-manylinux* cp313 -manylinux*', cibw_skip: '' }
50+ - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp* -manylinux*', cibw_skip: '*36* *37* ' }
5251 # x86_64 - musllinux
53- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp38-musllinux* cp313 -musllinux*', cibw_skip: '' }
52+ - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp* -musllinux*', cibw_skip: '*36* *37* ' }
5453 # aarch64 - manylinux
55- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp38-manylinux* cp313 -manylinux*', cibw_skip: '' }
54+ - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp* -manylinux*', cibw_skip: '*36* *37* ' }
5655 # aarch64 - musllinux
57- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp38-musllinux* cp313 -musllinux*', cibw_skip: '' }
56+ - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp* -musllinux*', cibw_skip: '*36* *37* ' }
5857 # macos - x86_64
59- - { os: macos-13, arch: x86_64, cibw_build: 'cp38* cp313* ', cibw_skip: '' }
58+ - { os: macos-13, arch: x86_64, cibw_build: 'cp* ', cibw_skip: '*36* *37* ' }
6059 # macos - arm64
61- - { os: macos-latest, arch: arm64, cibw_build: 'cp38* cp313*', cibw_skip: '' }
62- - { os: macos-latest, arch: universal2, cibw_build: 'cp38* cp313*', cibw_skip: '' }
60+ - { os: macos-latest, arch: arm64, cibw_build: 'cp*', cibw_skip: '*36* *37*' }
6361 # windows - amd64
64- - { os: windows-latest, arch: AMD64, cibw_build: 'cp38* cp313* ', cibw_skip: '' }
62+ - { os: windows-latest, arch: AMD64, cibw_build: 'cp* ', cibw_skip: '*36* *37* ' }
6563 # windows - x86
66- # - { os: windows-latest, arch: x86, cibw_build: 'cp38* cp313* ', cibw_skip: '' }
64+ # - { os: windows-latest, arch: x86, cibw_build: 'cp* ', cibw_skip: '*36* *37* ' }
6765 # windows - arm64
68- - { os: windows-latest, arch: ARM64, cibw_build: 'cp39* cp313* ', cibw_skip: '' }
66+ - { os: windows-latest, arch: ARM64, cibw_build: 'cp* ', cibw_skip: '*36* *37* *38* ' }
6967
7068 steps :
7169 - uses : actions/checkout@v4
@@ -108,7 +106,7 @@ jobs:
108106 uses : docker/setup-qemu-action@v3
109107
110108 - name : ' 🚧 cibuildwheel run'
111- uses : pypa/cibuildwheel@v2.22.0
109+ uses : pypa/cibuildwheel@v2.23.3
112110 env :
113111 CIBW_BUILD_FRONTEND : build
114112 CIBW_BUILD : ${{ matrix.cibw_build }}
@@ -131,115 +129,6 @@ jobs:
131129 name : ${{ env.ARTIFACT_NAME }}
132130 path : ./wheelhouse/*.whl
133131
134- # To be executed only in case of a tag release
135- build_wheels_all :
136- name : Building on ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.cibw_build }}
137- runs-on : ${{ matrix.os }}
138- if : startsWith(github.ref, 'refs/tags')
139- strategy :
140- fail-fast : false
141- matrix :
142- include :
143- # NOTE: Making this to parallelize and speed up workflow
144- # i686 - manylinux
145- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp39-manylinux*', cibw_skip: '' }
146- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp310-manylinux*', cibw_skip: '' }
147- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp311-manylinux*', cibw_skip: '' }
148- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp312-manylinux*', cibw_skip: '' }
149- # i686 - musllinux
150- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp39-musllinux*', cibw_skip: '' }
151- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp310-musllinux*', cibw_skip: '' }
152- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp311-musllinux*', cibw_skip: '' }
153- # - { os: ubuntu-latest, arch: i686, cibw_build: 'cp312-musllinux*', cibw_skip: '' }
154- # x86_64 - manylinux
155- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp39-manylinux*', cibw_skip: '' }
156- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp310-manylinux*', cibw_skip: '' }
157- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp311-manylinux*', cibw_skip: '' }
158- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp312-manylinux*', cibw_skip: '' }
159- # x86_64 - musllinux
160- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp39-musllinux*', cibw_skip: '' }
161- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp310-musllinux*', cibw_skip: '' }
162- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp311-musllinux*', cibw_skip: '' }
163- - { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp312-musllinux*', cibw_skip: '' }
164- # aarch64 - manylinux
165- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp39-manylinux*', cibw_skip: '' }
166- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp310-manylinux*', cibw_skip: '' }
167- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp311-manylinux*', cibw_skip: '' }
168- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp312-manylinux*', cibw_skip: '' }
169- # aarch64 - musllinux
170- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp39-musllinux*', cibw_skip: '' }
171- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp310-musllinux*', cibw_skip: '' }
172- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp311-musllinux*', cibw_skip: '' }
173- - { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp312-musllinux*', cibw_skip: '' }
174- # macos - x86_64
175- - { os: macos-13, arch: x86_64, cibw_build: 'cp*', cibw_skip: '*36* *37* *38* *313*' }
176- # macos - arm64
177- - { os: macos-latest, arch: arm64, cibw_build: 'cp*', cibw_skip: '*36* *37* *38* *313*' }
178- - { os: macos-latest, arch: universal2, cibw_build: 'cp*', cibw_skip: '*36* *37* *38* *39* *313*' }
179- # windows - amd64
180- - { os: windows-latest, arch: AMD64, cibw_build: 'cp*', cibw_skip: '*36* *37* *38* *313*' }
181- # windows - x86
182- # - { os: windows-latest, arch: x86, cibw_build: 'cp*', cibw_skip: '*36* *37* *38* *313*' }
183- # windows - arm64
184- - { os: windows-latest, arch: ARM64, cibw_build: 'cp*', cibw_skip: '*36* *37* *38* *39* *313*' }
185-
186- steps :
187- - uses : actions/checkout@v4
188-
189- # https://github.com/actions/upload-artifact/issues/22
190- - name : Prepare a unique name for Artifacts
191- shell : bash
192- run : |
193- # replace not-allowed chars with dash
194- name="cibw-wheels-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cibw_build }}"
195- name=$(echo -n "$name" | sed -e 's/[ \t:\/\\"<>|*?]/-/g' -e 's/--*/-/g' | sed -e 's/\-$//')
196- echo "ARTIFACT_NAME=$name" >> $GITHUB_ENV
197-
198- - name : ' 🛠️ Win MSVC 32 dev cmd setup'
199- if : runner.os == 'Windows' && matrix.arch == 'x86'
200- uses : ilammy/msvc-dev-cmd@v1
201- with :
202- arch : x86
203-
204- - name : ' 🛠️ Win MSVC 64 dev cmd setup'
205- if : runner.os == 'Windows' && matrix.arch == 'AMD64'
206- uses : ilammy/msvc-dev-cmd@v1
207- with :
208- arch : x64
209-
210- - name : ' 🛠️ Win MSVC ARM64 dev cmd setup'
211- if : runner.os == 'Windows' && matrix.arch == 'ARM64'
212- uses : ilammy/msvc-dev-cmd@v1
213- with :
214- arch : amd64_arm64
215-
216- - name : ' 🛠️ Set up QEMU'
217- if : runner.os == 'Linux' && matrix.arch == 'i686'
218- uses : docker/setup-qemu-action@v3
219-
220- - name : ' 🚧 cibuildwheel run'
221- uses : pypa/cibuildwheel@v2.22.0
222- env :
223- CIBW_BUILD_FRONTEND : build
224- CIBW_BUILD : ${{ matrix.cibw_build }}
225- CIBW_SKIP : ${{ matrix.cibw_skip }}
226- CIBW_ARCHS : ${{ matrix.arch }}
227- CIBW_ENVIRONMENT : DEBUG=${{ env.CAPSTONE_DEBUG }}
228- CIBW_ENVIRONMENT_PASS_LINUX : DEBUG
229- # https://cibuildwheel.pypa.io/en/stable/faq/#windows-arm64
230- CIBW_TEST_SKIP : " *-win_arm64"
231- CIBW_TEST_COMMAND : >
232- python -m pip install {package}/cstest_py &&
233- python {project}/suite/run_tests.py
234- with :
235- package-dir : bindings/python
236- output-dir : wheelhouse
237-
238- - uses : actions/upload-artifact@v4
239- with :
240- name : ${{ env.ARTIFACT_NAME }}
241- path : ./wheelhouse/*.whl
242-
243132 make_sdist :
244133 name : Make SDist
245134 runs-on : ubuntu-latest
@@ -262,7 +151,7 @@ jobs:
262151 path : bindings/python/dist/*.tar.gz
263152
264153 publish :
265- needs : [ build_wheels_always, build_wheels_all , make_sdist ]
154+ needs : [ build_and_test_wheels , make_sdist ]
266155 environment : pypi
267156 permissions :
268157 id-token : write
0 commit comments