forked from capnproto/pycapnp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1b71b22
commit 8d39255
Showing
1 changed file
with
110 additions
and
5 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
name: workflow-test | ||
name: Build-test | ||
|
||
on: | ||
push: | ||
|
@@ -10,9 +10,114 @@ on: | |
workflow_dispatch: | ||
|
||
jobs: | ||
test: | ||
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: | ||
- name: echo | ||
run: | | ||
echo "Hello world!" | ||
- 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/[email protected] | ||
# with: | ||
# user: __token__ | ||
# password: ${{ secrets.PYPI_PASSWORD_RELEASE }} | ||
|
||
# # password: ${{ secrets.PYPI_PASSWORD }} | ||
# # repository_url: https://test.pypi.org/legacy/ |