mirror of
https://github.com/capnproto/pycapnp.git
synced 2025-03-04 00:14:45 +01:00

- Update CHANGELOG.md - Update to bundled capnproto-1.0.1 * Compiles with capnproto-0.8.0 and higher - *Breaking Change* Remove allow_cancellation (see https://capnproto.org/news/2023-07-28-capnproto-1.0.html) * This is tricky to handle for older versions of capnproto. Instead of dealing with lots of complication, removing it entirely. - Fix some documentation after the build backend support was added - Update tox.ini to support 3.8 to 3.12 - Update cibuildwheel to 2.16.1 * Adds Python 3.12 supports and implicitly deprecates EOL 3.7 (though it's still built)
116 lines
3.4 KiB
YAML
116 lines
3.4 KiB
YAML
name: Build
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build_wheels:
|
|
name: Build wheels on ${{ matrix.os }} ${{ matrix.arch }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
max-parallel: 99
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
arch: x86_64
|
|
- os: ubuntu-latest
|
|
arch: i686
|
|
- os: ubuntu-latest
|
|
arch: aarch64
|
|
- os: ubuntu-latest
|
|
arch: ppc64le
|
|
- os: ubuntu-latest
|
|
arch: s390x
|
|
|
|
- os: macOS-latest
|
|
arch: x86_64
|
|
- os: macOS-latest
|
|
arch: arm64
|
|
# Disabled until someone figures out how to build capnproto for arm64 and x86_64 simultaneously
|
|
# - os: macOS-latest
|
|
# arch: universal2
|
|
|
|
- os: windows-2019
|
|
arch: AMD64
|
|
- os: windows-2019
|
|
arch: x86
|
|
# Does not build currently
|
|
# - os: windows-2019
|
|
# arch: ARM64
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up QEMU
|
|
if: runner.os == 'Linux'
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
# Used to host cibuildwheel
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.12'
|
|
|
|
- name: Install cibuildwheel
|
|
run: python -m pip install cibuildwheel==2.16.1
|
|
|
|
- name: Build wheels
|
|
run: python -m cibuildwheel --output-dir wheelhouse
|
|
env:
|
|
CIBW_ARCHS: ${{ matrix.arch }}
|
|
# TODO: Disable building PyPy wheels. If the build system gets modernized, this should be
|
|
# auto-detected based on the Cython dependency.
|
|
CIBW_SKIP: pp*
|
|
CIBW_TEST_REQUIRES: pytest pytest-asyncio
|
|
CIBW_TEST_COMMAND: pytest {project}
|
|
# Only needed to make the macosx arm64 build work
|
|
CMAKE_OSX_ARCHITECTURES: "${{ matrix.arch == 'arm64' && 'arm64' || '' }}"
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
path: ./wheelhouse/*.whl
|
|
|
|
build_sdist:
|
|
name: Build source distribution
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Build sdist
|
|
run: pipx run build --sdist
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
path: dist/*.tar.gz
|
|
|
|
lint:
|
|
name: Lint with flake8 and check black
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Lint with flake8 and check black
|
|
run: |
|
|
pip install black flake8
|
|
flake8 . --filename '*.py,*.pyx,*.pxd' --count --show-source --statistics --exclude benchmark,build,capnp/templates/module.pyx
|
|
flake8 . --count --show-source --statistics --exclude benchmark,build
|
|
black . --check --diff --color
|
|
|
|
# upload_pypi:
|
|
# needs: [build_wheels, build_sdist]
|
|
# runs-on: ubuntu-latest
|
|
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
# steps:
|
|
# - uses: actions/download-artifact@v3
|
|
# with:
|
|
# # unpacks default artifact into dist/
|
|
# # if `name: artifact` is omitted, the action will create extra parent dir
|
|
# name: artifact
|
|
# path: dist
|
|
|
|
# - uses: pypa/gh-action-pypi-publish@v1.5.0
|
|
# with:
|
|
# user: __token__
|
|
# password: ${{ secrets.PYPI_PASSWORD_RELEASE }}
|
|
|
|
# # password: ${{ secrets.PYPI_PASSWORD }}
|
|
# # repository_url: https://test.pypi.org/legacy/
|