Merge pull request #438 from achaikou/changelog_1.0.2 #116
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test wheels | |
on: | |
push: | |
branches: [master] | |
tags: | |
- '*' | |
pull_request: | |
branches: [master] | |
workflow_dispatch: | |
jobs: | |
wheels: | |
name: Build wheels on ${{ matrix.os }} for ${{ matrix.arch }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: windows-2019 | |
arch: AMD64 | |
cmake_generator: "Visual Studio 16 2019" | |
cmake_generator_platform: "x64" | |
- os: windows-2019 | |
arch: x86 | |
cmake_generator: "Visual Studio 16 2019" | |
cmake_generator_platform: "Win32" | |
- os: ubuntu-20.04 | |
arch: x86_64 | |
- os: ubuntu-20.04 | |
arch: aarch64 | |
- os: ubuntu-20.04 | |
arch: i686 #builds from cibuildwheel, qemu not needed | |
- os: macos-13 | |
arch: x86_64 | |
- os: macos-14 | |
arch: arm64 | |
steps: | |
- name: Disable autocrlf | |
run: | | |
git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- uses: docker/setup-qemu-action@v3 | |
if: ${{ matrix.arch == 'aarch64' }} | |
name: Set up QEMU | |
- name: Install cibuildwheel | |
run: python -m pip install cibuildwheel | |
- name: Build wheels | |
env: | |
CIBW_ENVIRONMENT_WINDOWS: > | |
CMAKE_GENERATOR="${{ matrix.cmake_generator }}" | |
CMAKE_GENERATOR_PLATFORM="${{ matrix.cmake_generator_platform }}" | |
CMAKE_PREFIX_PATH="C:/Program Files/Mpark.Variant/" | |
CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;C:/Program Files (x86)/Mpark.Variant/" | |
CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;C:/Program Files/layered-file-protocols/" | |
CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;C:/Program Files (x86)/layered-file-protocols/" | |
CIBW_ARCHS: ${{ matrix.arch }} | |
# musllinux arch skip: unlikely someone wants to run dlisio on alpine on non-standard architecture | |
# musllinux cp38 skip: latest available numpy doesn't provide musslinux wheels, so it is unlikely useful | |
# macosx arm 38 skip: cibuildwheel can't test it | |
# 36, 37, 313 skip: python versions not supported | |
CIBW_SKIP: pp* *-musllinux_i686 *-musllinux_aarch64 cp38*-musllinux* cp38*-macosx_*arm64 cp36-* cp37-* cp313-* | |
run: | | |
python -m cibuildwheel --output-dir wheelhouse python/ | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-${{ matrix.os }}-${{ matrix.arch }} | |
path: ./wheelhouse/*.whl | |
publish: | |
needs: wheels | |
name: Publish wheels to PyPI | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: wheel-* | |
merge-multiple: true | |
path: ./wheelhouse/ | |
- name: Publish wheels to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages-dir: ./wheelhouse/ |