diff --git a/.github/workflows/wheel.yml b/.github/workflows/wheel.yml index b8fffb1..2963e62 100644 --- a/.github/workflows/wheel.yml +++ b/.github/workflows/wheel.yml @@ -5,12 +5,12 @@ on: types: [published] push: tags: - - 'v*' # Alternative: only build for tags. - # pull_request: + - "v*" # Alternative: only build for tags. + pull_request: jobs: build_wheels: - name: Build wheels for cp${{ matrix.python }}-${{ matrix.platform_id }} + name: Build wheels for cp${{ matrix.python }}-${{ matrix.platform_id }}${{ matrix.manylinux_image }} runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -36,46 +36,110 @@ jobs: python: 313t platform_id: win_amd64 cibw_enable: cpython-freethreading - # linux-64 + # linux-64 for manylinux2014 - os: ubuntu-latest python: 39 platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 - os: ubuntu-latest python: 310 platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 - os: ubuntu-latest python: 311 platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 - os: ubuntu-latest python: 312 platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 - os: ubuntu-latest python: 313 platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 - os: ubuntu-latest python: 313t platform_id: manylinux_x86_64 cibw_enable: cpython-freethreading - # linux-aarch64 + manylinux_image: manylinux2014 + # linux-aarch64 for manylinux2014 - os: ubuntu-24.04-arm python: 39 platform_id: manylinux_aarch64 + manylinux_image: manylinux2014 - os: ubuntu-24.04-arm python: 310 platform_id: manylinux_aarch64 + manylinux_image: manylinux2014 - os: ubuntu-24.04-arm python: 311 platform_id: manylinux_aarch64 + manylinux_image: manylinux2014 - os: ubuntu-24.04-arm python: 312 platform_id: manylinux_aarch64 + manylinux_image: manylinux2014 - os: ubuntu-24.04-arm python: 313 platform_id: manylinux_aarch64 + manylinux_image: manylinux2014 - os: ubuntu-24.04-arm python: 313t platform_id: manylinux_aarch64 cibw_enable: cpython-freethreading + manylinux_image: manylinux2014 + # linux-64 for manylinux_2_28 + - os: ubuntu-latest + python: 39 + platform_id: manylinux_x86_64 + manylinux_image: manylinux_2_28 + - os: ubuntu-latest + python: 310 + platform_id: manylinux_x86_64 + manylinux_image: manylinux_2_28 + - os: ubuntu-latest + python: 311 + platform_id: manylinux_x86_64 + manylinux_image: manylinux_2_28 + - os: ubuntu-latest + python: 312 + platform_id: manylinux_x86_64 + manylinux_image: manylinux_2_28 + - os: ubuntu-latest + python: 313 + platform_id: manylinux_x86_64 + manylinux_image: manylinux_2_28 + - os: ubuntu-latest + python: 313t + platform_id: manylinux_x86_64 + cibw_enable: cpython-freethreading + manylinux_image: manylinux_2_28 + # linux-aarch64 for manylinux_2_28 + - os: ubuntu-24.04-arm + python: 39 + platform_id: manylinux_aarch64 + manylinux_image: manylinux_2_28 + - os: ubuntu-24.04-arm + python: 310 + platform_id: manylinux_aarch64 + manylinux_image: manylinux_2_28 + - os: ubuntu-24.04-arm + python: 311 + platform_id: manylinux_aarch64 + manylinux_image: manylinux_2_28 + - os: ubuntu-24.04-arm + python: 312 + platform_id: manylinux_aarch64 + manylinux_image: manylinux_2_28 + - os: ubuntu-24.04-arm + python: 313 + platform_id: manylinux_aarch64 + manylinux_image: manylinux_2_28 + - os: ubuntu-24.04-arm + python: 313t + platform_id: manylinux_aarch64 + cibw_enable: cpython-freethreading + manylinux_image: manylinux_2_28 # macos-x86-64 - os: macos-13 python: 39 @@ -103,27 +167,27 @@ jobs: platform_id: macosx_x86_64 cibw_enable: cpython-freethreading # macos-arm64 - - os: macos-latest + - os: macos-14 python: 39 macos_target: 14 platform_id: macosx_arm64 - - os: macos-latest + - os: macos-14 python: 310 macos_target: 14 platform_id: macosx_arm64 - - os: macos-latest + - os: macos-14 python: 311 macos_target: 14 platform_id: macosx_arm64 - - os: macos-latest + - os: macos-14 python: 312 macos_target: 14 platform_id: macosx_arm64 - - os: macos-latest + - os: macos-14 python: 313 macos_target: 14 platform_id: macosx_arm64 - - os: macos-latest + - os: macos-14 python: 313t macos_target: 14 platform_id: macosx_arm64 @@ -145,7 +209,7 @@ jobs: - uses: actions/setup-python@v5 if: runner.os == 'Windows' with: - python-version: '3.13' + python-version: "3.13" - run: pipx run --python 3.13 cibuildwheel==3.1.1 if: runner.os == 'Windows' shell: msys2 {0} @@ -170,7 +234,9 @@ jobs: CIBW_ENABLE: ${{ matrix.cibw_enable }} CIBW_BEFORE_ALL_LINUX: "yum install -y openblas-devel" CIBW_BEFORE_ALL_MACOS: "brew install openblas gfortran" + CIBW_ENVIRONMENT_MACOS: CC=gcc-13 CXX=g++-13 FC=gfortran-13 CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }} + CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_image }} MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos_target }}.0 UV_DEFAULT_INDEX: https://pypi.org/simple UV_INDEX: https://pypi.org/simple @@ -178,7 +244,7 @@ jobs: shell: bash - uses: actions/upload-artifact@v4 with: - name: cibw-wheels-cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ strategy.job-index }} + name: cibw-wheels-cp${{ matrix.python }}-${{ matrix.platform_id }}${{ matrix.manylinux_image }}-${{ strategy.job-index }} path: ./wheelhouse/*.whl build_sdist: @@ -198,12 +264,12 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') permissions: - # IMPORTANT: this permission is mandatory for trusted publishing - id-token: write + # IMPORTANT: this permission is mandatory for trusted publishing + id-token: write steps: - uses: actions/download-artifact@v4 with: pattern: cibw-* path: dist merge-multiple: true - - uses: pypa/gh-action-pypi-publish@release/v1 \ No newline at end of file + - uses: pypa/gh-action-pypi-publish@release/v1