Build inside a venv and use poetry in the top level Makefile. #45
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
# Workflow to build and test wheels. | |
name: Wheel builder | |
on: [push, pull_request] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
build_wheels: | |
name: Build wheel for ${{ matrix.python }}-${{ matrix.buildplat[1] }} | |
runs-on: ${{ matrix.buildplat[0] }} | |
strategy: | |
# Ensure that a wheel builder finishes even if another fails | |
fail-fast: false | |
matrix: | |
# Github Actions doesn't support pairing matrix values together, let's improvise | |
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 | |
buildplat: | |
- [ubuntu-20.04, manylinux_x86_64] | |
#- [ubuntu-20.04, musllinux_x86_64] | |
#- [macos-12, macosx_x86_64] | |
#- [windows-2019, win_amd64] | |
python: ["cp39", "cp310", "cp311", "cp312"] # "pp39" | |
exclude: | |
# Don't build PyPy 32-bit windows | |
- buildplat: [windows-2019, win32] | |
python: "pp39" | |
- buildplat: [ ubuntu-20.04, musllinux_x86_64 ] | |
python: "pp39" | |
steps: | |
- name: Checkout Coriolis | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
submodules: true | |
# https://github.com/actions/checkout/issues/338 | |
fetch-depth: 0 | |
- name: pkg-config-for-win | |
run: | | |
choco install -y --checksum 6004DF17818F5A6DBF19CB335CC92702 pkgconfiglite | |
if: runner.os == 'windows' | |
# Used to push the built wheels | |
- uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0 | |
with: | |
python-version: "3.x" | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ matrix.python }}-${{ matrix.buildplat[1] }} | |
- name: Build wheels | |
uses: pypa/cibuildwheel@66b46d086804a9e9782354100d96a3a445431bca # v2.14.0 | |
env: | |
CIBW_PRERELEASE_PYTHONS: True | |
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }} | |
CIBW_ENVIRONMENT: USE_CCACHE=1 CCACHE_DIR=/.ccache | |
CIBW_CONTAINER_ENGINE: "docker; create_args: '--volume=${{ github.workspace }}/.ccache:/.ccache'" | |
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: ${{ matrix.python }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }} | |
path: ./wheelhouse/*.whl | |
# | |
# build_sdist: | |
# name: Build sdist | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout Coriolis | |
# uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
# with: | |
# submodules: true | |
# fetch-depth: 0 | |
# # Used to push the built wheels | |
# - uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0 | |
# with: | |
# # Build sdist on lowest supported Python | |
# python-version: "3.9" | |
# - name: Build sdist | |
# run: | | |
# python -m pip install build | |
# python -m build -s | |
# - name: Test the sdist | |
# run: | | |
# # TODO: Don't run test suite, and instead build wheels from sdist | |
# # Depends on pypa/cibuildwheel#1020 | |
# python -m pip install dist/*.gz | |
# #cd .. # Can't import numpy within numpy src directory | |
# #python -c "import numpy, sys; print(numpy.__version__); sys.exit(numpy.test() is False)" | |
# | |
# - name: Check README rendering for PyPI | |
# run: | | |
# python -mpip install twine | |
# twine check dist/* | |
# | |
# - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
# with: | |
# name: sdist | |
# path: ./dist/* | |
# |