diff options
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r-- | .github/workflows/ci.yaml | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b26dfec..d30f9b0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -33,6 +33,7 @@ jobs: - spec: cp38-manylinux_x86_64 - spec: cp39-manylinux_x86_64 - spec: cp310-manylinux_x86_64 + - spec: cp311-manylinux_x86_64 - spec: cp27-manylinux_i686 cibw_version: cibuildwheel<2.0 # py2.7 is not supported on CIBW 2.0+ manylinux_img: manylinux1 # build really old Pythons on manylinux1 @@ -42,12 +43,20 @@ jobs: - spec: cp38-manylinux_i686 - spec: cp39-manylinux_i686 - spec: cp310-manylinux_i686 + - spec: cp311-manylinux_i686 + - spec: cp39-musllinux_x86_64 + - spec: cp310-musllinux_x86_64 + - spec: cp311-musllinux_x86_64 + - spec: cp39-musllinux_i686 + - spec: cp310-musllinux_i686 + - spec: cp311-musllinux_i686 steps: - name: clone repo uses: actions/checkout@v2 - name: build/test wheels env: + CFLAGS: -Dffi_call=cffistatic_ffi_call # override name for ffi_call to break hard if we linked against someone else's libffi CIBW_ARCHS_LINUX: auto CIBW_BUILD: ${{ matrix.spec }} CIBW_BEFORE_BUILD: | @@ -55,19 +64,20 @@ jobs: curl -L -O https://github.com/libffi/libffi/archive/v3.4.2.tar.gz && \ tar zxf v3.4.2.tar.gz && cd libffi-3.4.2 && \ ./autogen.sh && \ - ./configure --without-gcc-arch --disable-docs && \ + ./configure --without-gcc-arch --disable-docs --with-pic --enable-shared=no && \ make && \ make install && \ - ldconfig - # TODO: update default to '' once CIBW 2.1.3 ships: https://github.com/pypa/cibuildwheel/pull/829 - CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_img || 'manylinux2010' }} - CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux_img || 'manylinux2010' }} + ldconfig || true + CIBW_ENVIRONMENT_PASS_LINUX: CFLAGS # ensure that the build container can see our overridden build config + CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_img || '' }} + CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux_img || '' }} + CIBW_PRERELEASE_PYTHONS: 'True' CIBW_TEST_REQUIRES: pytest - CIBW_TEST_COMMAND: python -m pytest {project}/c {project}/testing + CIBW_TEST_COMMAND: PYTHONUNBUFFERED=1 python -m pytest {project} run: | python -m pip install --upgrade "${{ matrix.cibw_version || 'cibuildwheel' }}" - # actually build libyaml + wheel (using env tweaks above) + # actually build libffi + wheel (using env tweaks above) python -m cibuildwheel --output-dir dist . @@ -94,6 +104,7 @@ jobs: - spec: cp38-macosx_x86_64 - spec: cp39-macosx_x86_64 - spec: cp310-macosx_x86_64 + - spec: cp311-macosx_x86_64 # build for arm64 under a hacked macOS 12 self-hosted x86_64-on-arm64 runner until arm64 is fully supported # 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) - spec: cp39-macosx_arm64 @@ -107,6 +118,14 @@ jobs: runs_on: [self-hosted, macOS] run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} sdkroot: macosx11.3 + + - spec: cp311-macosx_arm64 + deployment_target: '11.0' + runs_on: [self-hosted, macOS] + run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} + sdkroot: macosx11.3 + + steps: - name: clone repo uses: actions/checkout@v2 @@ -119,8 +138,9 @@ jobs: - name: build/test wheels env: CIBW_BUILD: ${{ matrix.spec }} + CIBW_PRERELEASE_PYTHONS: 'True' CIBW_TEST_REQUIRES: pytest - CIBW_TEST_COMMAND: pip install pip --upgrade; cd {project}; pytest + CIBW_TEST_COMMAND: pip install pip --upgrade; cd {project}; PYTHONUNBUFFERED=1 pytest run: | if [[ -n "${{ matrix.deployment_target || '' }}" ]] then @@ -141,7 +161,7 @@ jobs: if-no-files-found: error windows: - runs-on: windows-2016 + runs-on: windows-2019 strategy: matrix: include: @@ -152,6 +172,7 @@ jobs: - spec: cp38-win_amd64 - spec: cp39-win_amd64 - spec: cp310-win_amd64 + - spec: cp311-win_amd64 - spec: cp27-win32 cibw_version: cibuildwheel==1.10 # last release with proper py2.7 Windows support - spec: cp36-win32 @@ -159,6 +180,7 @@ jobs: - spec: cp38-win32 - spec: cp39-win32 - spec: cp310-win32 + - spec: cp311-win32 steps: - name: clone repo uses: actions/checkout@v2 @@ -180,6 +202,7 @@ jobs: - name: build/test wheels env: CIBW_BUILD: ${{ matrix.spec }} + CIBW_PRERELEASE_PYTHONS: 'True' run: | python -m pip install --upgrade pip pip install "${{ matrix.cibw_version || 'cibuildwheel'}}" |