Skip to content

[CI] Pin setuptools to <74 because of removed MSVCCompiler class #395

[CI] Pin setuptools to <74 because of removed MSVCCompiler class

[CI] Pin setuptools to <74 because of removed MSVCCompiler class #395

Workflow file for this run

name: Build Wheels
on:
push:
branches: 'master'
tags: 'rapidgzip-v*.*.*'
jobs:
Build-Wheels:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13, macos-14, windows-latest]
archs: [auto64]
# Build with both x86-64 (macos-13) and ARM64 (macos-14) runners.
# For some reason, macos-14-latest seems to use macos-14-arm64, but when I try to specify macos-14-arm64
# directly, then the actions does not find any runner to run on and macos-14 also uses arm64...
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
#
# manylinux1 is not supported anymore because it won't compile C++17 code
# manylinux_2_24, which is newer than manylinux2014, is not supported because it comes with GCC 5.3,
# which cannot compile C++17 code. Just why?
# https://github.com/pypa/manylinux/issues/1012
# manylinux_2_28 has GCC 11 :3 but it has dropped support for i686 (x86 32-bit).
# manylinux2010 runs into this problem https://github.com/pypa/cibuildwheel/issues/1001
# MacOS and Windows ignore the manylinux-image version because they are not Linux.
include:
- os: ubuntu-latest
manylinux-image: manylinux2014
archs: auto64
- os: ubuntu-latest
manylinux-image: manylinux2014
archs: auto32
- os: ubuntu-latest
manylinux-image: manylinux_2_28
archs: auto64
env:
MACOSX_DEPLOYMENT_TARGET: "10.14"
steps:
- name: System Information
if: "! startsWith(matrix.os, 'windows')"
run: |
uname -a
- name: Print Architecture
if: "startsWith(matrix.os, 'macos')"
run: |
sysctl -n machdep.cpu.brand_string
arch
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install Dependencies
run: |
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade-strategy eager --upgrade cython twine cibuildwheel build
- name: Build Tarball
working-directory: python/indexed_bzip2
# Only one out of the OS matrix needs to upload the tarball.
if: matrix.manylinux-image == 'manylinux2014' && matrix.os == 'ubuntu-latest'
run: python3 -m build --sdist
- name: Build Wheels
env:
CIBW_ARCHS: ${{ matrix.archs }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux-image }}
run: python -m cibuildwheel --output-dir dist python/indexed_bzip2
- name: Check Wheels
run: twine check dist/*
- name: Publish Tarball to PyPI
# Only one out of the OS matrix needs to upload the tarball.
if: startsWith(github.ref, 'refs/tags/') && matrix.manylinux-image == 'manylinux2014' && matrix.os == 'ubuntu-latest'
env:
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
working-directory: python/indexed_bzip2
run: twine upload --skip-existing -u __token__ dist/*
- name: Publish to PyPI
if: startsWith(github.ref, 'refs/tags/')
env:
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
run: twine upload --skip-existing -u __token__ dist/*