Skip to content

Build wheels

Build wheels #96

Workflow file for this run

name: Build wheels
on:
workflow_dispatch:
inputs:
flavours:
type: boolean
default: true
sdist:
type: boolean
default: true
wheels_linux_aarch64:
type: boolean
default: true
wheels_linux_auto:
type: boolean
default: true
wheels_linux_pyodide:
type: boolean
default: false
wheels_windows_auto:
type: boolean
default: true
wheels_macos_arm64:
type: boolean
default: true
wheels_macos_auto:
type: boolean
default: true
wheels_cps:
description: 'wheels_cps: sets $CIBW_BUILD, E.g. "cp310* cp311*".'
type: string
# We can't currently have more than 10 inputs
jobs:
build_sdist:
if: ${{ inputs.sdist }}
name: Build sdist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
#with:
# fetch-depth: 0 # Optional, use if you use setuptools_scm
# submodules: true # Optional, use if you have submodules
- name: Build sdist
run: pipx run build --sdist
- uses: actions/upload-artifact@v2
with:
path: dist/*.tar.gz
build_wheels:
#if: ${{ inputs.wheels }}
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-2019, macos-latest]
# Avoid cancelling of all cibuildwheel runs after a single failure.
fail-fast: false
steps:
- uses: actions/checkout@v2
# Get Python for running cibuildwheel. This also ensures that 'python'
# works on MacOS, where it seems only 'python3' is available by default.
#
- uses: actions/setup-python@v2
# On Linux, get qemu so we can build for aarch64.
#
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
with:
platforms: all
- name: gh_release
# Doesn't seem to be a way to passing inputs.* on command
# line, so we set environment instead. E.g. see:
# https://github.com/orgs/community/discussions/27088
#
env:
inputs_flavours: ${{inputs.flavours}}
inputs_sdist: ${{inputs.sdist}}
inputs_wheels_linux_aarch64: ${{inputs.wheels_linux_aarch64}}
inputs_wheels_linux_auto: ${{inputs.wheels_linux_auto}}
inputs_wheels_linux_pyodide: ${{inputs.wheels_linux_pyodide}}
inputs_wheels_macos_arm64: ${{inputs.wheels_macos_arm64}}
inputs_wheels_macos_auto: ${{inputs.wheels_macos_auto}}
inputs_wheels_windows_auto: ${{inputs.wheels_windows_auto}}
inputs_wheels_cps: ${{inputs.wheels_cps}}
run:
python scripts/gh_release.py
# Upload generated wheels, to be accessible from github Actions page.
#
- uses: actions/upload-artifact@v2
with:
path: ./wheelhouse/*.whl