diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cdb11d69..c398b336 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -6,100 +6,103 @@ on: - cron: '0 12 * * 1' jobs: - sdist: - runs-on: ubuntu-20.04 - steps: - - name: clone repo - uses: actions/checkout@v4 - - - name: build sdist - run: | - rm -rf dist/ - python -m pip install build - python -m build --sdist - - - name: upload sdist artifact - uses: actions/upload-artifact@v3 - with: - path: dist - if-no-files-found: error - +# sdist: +# runs-on: ubuntu-20.04 +# steps: +# - name: clone repo +# uses: actions/checkout@v4 +# +# - name: build sdist +# run: | +# rm -rf dist/ +# python -m pip install build +# python -m build --sdist +# +# - name: upload sdist artifact +# uses: actions/upload-artifact@v3 +# with: +# path: dist +# if-no-files-found: error +# linux: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: include: - - spec: cp38-manylinux_x86_64 - - spec: cp39-manylinux_x86_64 - - spec: cp310-manylinux_x86_64 - - spec: cp311-manylinux_x86_64 - - spec: cp312-manylinux_x86_64 - - - spec: cp38-manylinux_i686 - - spec: cp39-manylinux_i686 - - spec: cp310-manylinux_i686 - - spec: cp311-manylinux_i686 - - spec: cp312-manylinux_i686 - - - spec: cp39-musllinux_x86_64 - - spec: cp310-musllinux_x86_64 - - spec: cp311-musllinux_x86_64 - - spec: cp312-musllinux_x86_64 - - - spec: cp39-musllinux_i686 - - spec: cp310-musllinux_i686 - - spec: cp311-musllinux_i686 - #- spec: cp312-musllinux_i686 # busted as of 9/22/23 - - - spec: cp38-manylinux_aarch64 - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp39-manylinux_aarch64 - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp310-manylinux_aarch64 - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp311-manylinux_aarch64 - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp312-manylinux_aarch64 - foreign_arch: true - test_args: '{project}/src/c' - - - spec: cp38-manylinux_ppc64le - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp39-manylinux_ppc64le - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp310-manylinux_ppc64le - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp311-manylinux_ppc64le - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp312-manylinux_ppc64le - foreign_arch: true - test_args: '{project}/src/c' - - - spec: cp38-manylinux_s390x - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp39-manylinux_s390x - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp310-manylinux_s390x - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp311-manylinux_s390x - foreign_arch: true - test_args: '{project}/src/c' - - spec: cp312-manylinux_s390x - foreign_arch: true - test_args: '{project}/src/c' - +# - spec: cp38-manylinux_x86_64 +# - spec: cp39-manylinux_x86_64 +# - spec: cp310-manylinux_x86_64 +# - spec: cp311-manylinux_x86_64 +# - spec: cp312-manylinux_x86_64 + - spec: cp313-manylinux_x86_64 + cibw_version: https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip + manylinux_img: quay.io/rolpdog/manylinux_2_28_x86_64:latest +# +# - spec: cp38-manylinux_i686 +# - spec: cp39-manylinux_i686 +# - spec: cp310-manylinux_i686 +# - spec: cp311-manylinux_i686 +# - spec: cp312-manylinux_i686 +# +# - spec: cp39-musllinux_x86_64 +# - spec: cp310-musllinux_x86_64 +# - spec: cp311-musllinux_x86_64 +# - spec: cp312-musllinux_x86_64 +# +# - spec: cp39-musllinux_i686 +# - spec: cp310-musllinux_i686 +# - spec: cp311-musllinux_i686 +# #- spec: cp312-musllinux_i686 # busted as of 9/22/23 +# +# - spec: cp38-manylinux_aarch64 +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp39-manylinux_aarch64 +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp310-manylinux_aarch64 +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp311-manylinux_aarch64 +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp312-manylinux_aarch64 +# foreign_arch: true +# test_args: '{project}/src/c' +# +# - spec: cp38-manylinux_ppc64le +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp39-manylinux_ppc64le +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp310-manylinux_ppc64le +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp311-manylinux_ppc64le +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp312-manylinux_ppc64le +# foreign_arch: true +# test_args: '{project}/src/c' +# +# - spec: cp38-manylinux_s390x +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp39-manylinux_s390x +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp310-manylinux_s390x +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp311-manylinux_s390x +# foreign_arch: true +# test_args: '{project}/src/c' +# - spec: cp312-manylinux_s390x +# foreign_arch: true +# test_args: '{project}/src/c' +# steps: - name: clone repo uses: actions/checkout@v4 @@ -140,8 +143,8 @@ jobs: with: path: dist if-no-files-found: error - - +# +# macos: defaults: run: @@ -151,51 +154,53 @@ jobs: fail-fast: false matrix: include: - # build for x86_64 under the default hosted macOS 10.x x86_64 runner - - spec: cp38-macosx_x86_64 - - spec: cp39-macosx_x86_64 - - spec: cp310-macosx_x86_64 - - spec: cp311-macosx_x86_64 - - spec: cp312-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 - deployment_target: '11.0' - runs_on: - - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} - - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} - maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} - run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} - sdkroot: macosx11.3 - - - spec: cp310-macosx_arm64 - deployment_target: '11.0' - runs_on: - - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} - - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} - maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} - run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} - sdkroot: macosx11.3 - - - spec: cp311-macosx_arm64 - deployment_target: '11.0' - runs_on: - - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} - - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} - maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} - run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} - sdkroot: macosx11.3 - - - spec: cp312-macosx_arm64 - deployment_target: '11.0' - runs_on: - - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} - - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} - maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} - run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} - sdkroot: macosx11.3 - - +# # build for x86_64 under the default hosted macOS 10.x x86_64 runner +# - spec: cp38-macosx_x86_64 +# - spec: cp39-macosx_x86_64 +# - spec: cp310-macosx_x86_64 +# - spec: cp311-macosx_x86_64 +# - spec: cp312-macosx_x86_64 + - spec: cp313-macosx_x86_64 + cibw_version: https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip +## # 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 +# deployment_target: '11.0' +# runs_on: +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} +# maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} +# run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} +# sdkroot: macosx11.3 +# +# - spec: cp310-macosx_arm64 +# deployment_target: '11.0' +# runs_on: +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} +# maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} +# run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} +# sdkroot: macosx11.3 +# +# - spec: cp311-macosx_arm64 +# deployment_target: '11.0' +# runs_on: +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} +# maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} +# run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} +# sdkroot: macosx11.3 +# +# - spec: cp312-macosx_arm64 +# deployment_target: '11.0' +# runs_on: +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'self-hosted' || 'ubuntu-latest' }} +# - ${{ vars.run_macos_arm64_jobs == 'true' && 'macOS' || 'ubuntu-latest' }} +# maybe_skip: ${{ vars.run_macos_arm64_jobs != 'true' && 'skip' }} +# run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} +# sdkroot: macosx11.3 +# +# steps: - name: clone repo # need to use v2 until we can upgrade the runners on our private Apple Silicon build infra to one that supports node20 @@ -242,17 +247,18 @@ jobs: fail-fast: false matrix: include: - - spec: cp38-win_amd64 - - spec: cp39-win_amd64 - - spec: cp310-win_amd64 - - spec: cp311-win_amd64 - - spec: cp312-win_amd64 - - spec: cp38-win32 - - spec: cp39-win32 - - spec: cp310-win32 - - spec: cp311-win32 - - spec: cp312-win32 - +# - spec: cp38-win_amd64 +# - spec: cp39-win_amd64 +# - spec: cp310-win_amd64 +# - spec: cp311-win_amd64 +# - spec: cp312-win_amd64 + - spec: cp313-win_amd64 +# - spec: cp38-win32 +# - spec: cp39-win32 +# - spec: cp310-win32 +# - spec: cp311-win32 +# - spec: cp312-win32 +# steps: - name: clone repo uses: actions/checkout@v4 @@ -261,9 +267,9 @@ jobs: CIBW_BUILD: ${{ matrix.spec }} CIBW_PRERELEASE_PYTHONS: 'True' CIBW_TEST_REQUIRES: pytest setuptools - CIBW_TEST_COMMAND: 'python -m pytest {project}/src/c' + #CIBW_TEST_COMMAND: 'python -m pytest {project}/src/c' # FIXME: /testing takes ~45min on Windows and has some failures... - # CIBW_TEST_COMMAND='python -m pytest {project}/src/c {project}/testing' + CIBW_TEST_COMMAND: python -m pytest {project} run: | python -m pip install --upgrade pip pip install "${{ matrix.cibw_version || 'cibuildwheel'}}" @@ -275,17 +281,17 @@ jobs: with: path: dist if-no-files-found: error - - check: - if: always() - needs: - - sdist - - linux - - macos - - windows - runs-on: ubuntu-latest - steps: - - name: Verify all previous jobs succeeded (provides a single check to sample for gating purposes) - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} +# +# check: +# if: always() +# needs: +# - sdist +# - linux +# - macos +# - windows +# runs-on: ubuntu-latest +# steps: +# - name: Verify all previous jobs succeeded (provides a single check to sample for gating purposes) +# uses: re-actors/alls-green@release/v1 +# with: +# jobs: ${{ toJSON(needs) }}