3333 - spec : cp38-manylinux_x86_64
3434 - spec : cp39-manylinux_x86_64
3535 - spec : cp310-manylinux_x86_64
36+ - spec : cp311-manylinux_x86_64
3637 - spec : cp27-manylinux_i686
3738 cibw_version : cibuildwheel<2.0 # py2.7 is not supported on CIBW 2.0+
3839 manylinux_img : manylinux1 # build really old Pythons on manylinux1
@@ -42,32 +43,41 @@ jobs:
4243 - spec : cp38-manylinux_i686
4344 - spec : cp39-manylinux_i686
4445 - spec : cp310-manylinux_i686
46+ - spec : cp311-manylinux_i686
47+ - spec : cp39-musllinux_x86_64
48+ - spec : cp310-musllinux_x86_64
49+ - spec : cp311-musllinux_x86_64
50+ - spec : cp39-musllinux_i686
51+ - spec : cp310-musllinux_i686
52+ - spec : cp311-musllinux_i686
4553 steps :
4654 - name : clone repo
4755 uses : actions/checkout@v2
4856
4957 - name : build/test wheels
5058 env :
59+ CFLAGS : -Dffi_call=cffistatic_ffi_call # override name for ffi_call to break hard if we linked against someone else's libffi
5160 CIBW_ARCHS_LINUX : auto
5261 CIBW_BUILD : ${{ matrix.spec }}
5362 CIBW_BEFORE_BUILD : |
5463 set -eux && \
5564 curl -L -O https://github.com/libffi/libffi/archive/v3.4.2.tar.gz && \
5665 tar zxf v3.4.2.tar.gz && cd libffi-3.4.2 && \
5766 ./autogen.sh && \
58- ./configure --without-gcc-arch --disable-docs && \
67+ ./configure --without-gcc-arch --disable-docs --with-pic --enable-shared=no && \
5968 make && \
6069 make install && \
61- ldconfig
62- # TODO: update default to '' once CIBW 2.1.3 ships: https://github.com/pypa/cibuildwheel/pull/829
63- CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.manylinux_img || 'manylinux2010' }}
64- CIBW_MANYLINUX_I686_IMAGE : ${{ matrix.manylinux_img || 'manylinux2010' }}
70+ ldconfig || true
71+ CIBW_ENVIRONMENT_PASS_LINUX : CFLAGS # ensure that the build container can see our overridden build config
72+ CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.manylinux_img || '' }}
73+ CIBW_MANYLINUX_I686_IMAGE : ${{ matrix.manylinux_img || '' }}
74+ CIBW_PRERELEASE_PYTHONS : ' True'
6575 CIBW_TEST_REQUIRES : pytest
66- CIBW_TEST_COMMAND : python -m pytest {project}/c {project}/testing
76+ CIBW_TEST_COMMAND : PYTHONUNBUFFERED=1 python -m pytest {project}
6777 run : |
6878 python -m pip install --upgrade "${{ matrix.cibw_version || 'cibuildwheel' }}"
6979
70- # actually build libyaml + wheel (using env tweaks above)
80+ # actually build libffi + wheel (using env tweaks above)
7181 python -m cibuildwheel --output-dir dist .
7282
7383
94104 - spec : cp38-macosx_x86_64
95105 - spec : cp39-macosx_x86_64
96106 - spec : cp310-macosx_x86_64
107+ - spec : cp311-macosx_x86_64
97108 # build for arm64 under a hacked macOS 12 self-hosted x86_64-on-arm64 runner until arm64 is fully supported
98109 # FIXME: ? cp38-macosx_arm64 requires special handling and fails some test_zdist tests under cibw 2.1.2, skip it (so Apple's XCode python3 won't have a wheel)
99110 - spec : cp39-macosx_arm64
@@ -107,6 +118,14 @@ jobs:
107118 runs_on : [self-hosted, macOS]
108119 run_wrapper : arch -arm64 bash --noprofile --norc -eo pipefail {0}
109120 sdkroot : macosx11.3
121+
122+ - spec : cp311-macosx_arm64
123+ deployment_target : ' 11.0'
124+ runs_on : [self-hosted, macOS]
125+ run_wrapper : arch -arm64 bash --noprofile --norc -eo pipefail {0}
126+ sdkroot : macosx11.3
127+
128+
110129 steps :
111130 - name : clone repo
112131 uses : actions/checkout@v2
@@ -119,8 +138,9 @@ jobs:
119138 - name : build/test wheels
120139 env :
121140 CIBW_BUILD : ${{ matrix.spec }}
141+ CIBW_PRERELEASE_PYTHONS : ' True'
122142 CIBW_TEST_REQUIRES : pytest
123- CIBW_TEST_COMMAND : pip install pip --upgrade; cd {project}; pytest
143+ CIBW_TEST_COMMAND : pip install pip --upgrade; cd {project}; PYTHONUNBUFFERED=1 pytest
124144 run : |
125145 if [[ -n "${{ matrix.deployment_target || '' }}" ]]
126146 then
@@ -141,7 +161,7 @@ jobs:
141161 if-no-files-found : error
142162
143163 windows :
144- runs-on : windows-2016
164+ runs-on : windows-2019
145165 strategy :
146166 matrix :
147167 include :
@@ -152,13 +172,15 @@ jobs:
152172 - spec : cp38-win_amd64
153173 - spec : cp39-win_amd64
154174 - spec : cp310-win_amd64
175+ - spec : cp311-win_amd64
155176 - spec : cp27-win32
156177 cibw_version : cibuildwheel==1.10 # last release with proper py2.7 Windows support
157178 - spec : cp36-win32
158179 - spec : cp37-win32
159180 - spec : cp38-win32
160181 - spec : cp39-win32
161182 - spec : cp310-win32
183+ - spec : cp311-win32
162184 steps :
163185 - name : clone repo
164186 uses : actions/checkout@v2
@@ -180,6 +202,7 @@ jobs:
180202 - name : build/test wheels
181203 env :
182204 CIBW_BUILD : ${{ matrix.spec }}
205+ CIBW_PRERELEASE_PYTHONS : ' True'
183206 run : |
184207 python -m pip install --upgrade pip
185208 pip install "${{ matrix.cibw_version || 'cibuildwheel'}}"
0 commit comments