Fix CI, add wheels, adjust for SCM policy #94
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 | |
- os: macos-11 | |
arch: x86_64 | |
- os: macos-13-xlarge | |
arch: arm64 | |
steps: | |
- name: Disable autocrlf | |
run: | | |
git config --global core.autocrlf false | |
- uses: actions/checkout@v3 | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- uses: docker/setup-qemu-action@v2 | |
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 skip: unlikely someone wants to run dlisio on alpine on non-standard architecture | |
CIBW_SKIP: pp* *-musllinux_i686 *-musllinux_aarch64 cp36-* | |
run: | | |
python -m cibuildwheel --output-dir wheelhouse python/ | |
- uses: actions/upload-artifact@v3 | |
with: | |
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@v3 | |
- uses: actions/download-artifact@v3 | |
- name: Publish wheels to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages_dir: artifact |