Set up parallel github CI based off Numpy's actions
This commit is contained in:
parent
d0f0cdc47d
commit
abf08d443d
|
@ -0,0 +1,102 @@
|
|||
# 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/ccache-action@v1.2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@66b46d086804a9e9782354100d96a3a445431bca # v2.14.0
|
||||
env:
|
||||
CIBW_PRERELEASE_PYTHONS: True
|
||||
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
|
||||
|
||||
- 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/*
|
||||
#
|
Loading…
Reference in New Issue