Skip to content

Commit

Permalink
Build MacOS ARM64 Universal wheels (#161)
Browse files Browse the repository at this point in the history
* Try MacOS ARM wheels

* Only macos universal - try QEMU aarch64 build

* Comment out QEMU arm64 builds

* Re-order for consistency, clean
  • Loading branch information
hoffmang9 authored Feb 6, 2021
1 parent 39fac4a commit 31f38eb
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 78 deletions.
25 changes: 11 additions & 14 deletions .github/workflows/build-aarch64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,6 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
# we need fetch-depth 0 so setuptools_scm can resolve tags

- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SECRET
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
env:
SECRET: "${{ secrets.test_pypi_password }}"

- name: Prepare cibuildwheel
run: |
Expand All @@ -42,7 +29,7 @@ jobs:
source venv/bin/activate
python -m pip install --upgrade pip
pip install wheel
pip install cibuildwheel==1.8.0
pip install cibuildwheel==1.9.0
- name: Lint source with flake8
run: |
Expand Down Expand Up @@ -84,6 +71,16 @@ jobs:
name: wheels
path: ./dist

- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SECRET
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
env:
SECRET: "${{ secrets.test_pypi_password }}"

- name: Install twine
run: |
source venv/bin/activate
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/build-test-cplusplus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
# we need fetch-depth 0 so setuptools_scm can resolve tags

- name: cmake, RunTests with Windows
if: startsWith(matrix.os, 'windows')
Expand Down
70 changes: 48 additions & 22 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,33 +20,15 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
# we need fetch-depth 0 so setuptools_scm can resolve tags

- uses: actions/setup-python@v2
name: Install Python
with:
python-version: '3.8'

- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SECRET
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
env:
SECRET: "${{ secrets.test_pypi_password }}"

- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install wheel
pip install cibuildwheel==1.8.0
- name: Lint source with flake8
run: |
python -m pip install --upgrade pip
pip install flake8
flake8 tests setup.py
Expand All @@ -61,14 +43,18 @@ jobs:
pip install build
python -m build --sdist --outdir dist .
- name: Build wheels and test
run: |
python -m cibuildwheel --output-dir dist
- name: Build ${{ matrix.os }} wheels and test
uses: joerick/[email protected]
with:
output-dir: dist
env:
# build python 3.7 and 3.8
CIBW_BUILD: 'cp37-* cp38-* cp39-*'
CIBW_SKIP: '*-manylinux_i686 *-win32'
# we need boost
# CIBW_ARCHS_MACOS: x86_64 arm64 universal2
CIBW_ARCHS_MACOS: x86_64 universal2
CIBW_TEST_SKIP: '*_arm64 *_universal2:arm64'
CIBW_BUILD_VERBOSITY_LINUX: 0
CIBW_BUILD_VERBOSITY_MACOS: 0
CIBW_BUILD_VERBOSITY_WINDOWS: 0
Expand All @@ -89,12 +75,52 @@ jobs:
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: py.test -v {project}/tests -s

# - name: Set up QEMU on ubuntu x86_64
# if: startsWith(matrix.os, 'ubuntu')
# id: qemu
# uses: docker/setup-qemu-action@v1
# with:
# platforms: arm64
# QEMY is about 9x slower than ARM64 native builds sadly...
# - name: Build wheels and test aarch64
# if: startsWith(matrix.os, 'ubuntu')
# uses: joerick/[email protected]
# with:
# output-dir: dist
# env:
# CIBW_BUILD: 'cp37-* cp38-* cp39-*'
# CIBW_ARCHS_LINUX: aarch64
# CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
# CIBW_BUILD_VERBOSITY_LINUX: 0
# # we need boost
# CIBW_BEFORE_ALL_LINUX: >
# yum -y install epel-release
# && yum -y install cmake3
# && rm -rf /usr/local/bin/cmake
# && ln -s /usr/bin/cmake3 /usr/local/bin/cmake
# && cmake --version
# && uname -a
# CIBW_BEFORE_BUILD_LINUX: >
# python -m pip install --upgrade pip
# CIBW_TEST_REQUIRES: pytest
# CIBW_TEST_COMMAND: py.test -v {project}/tests -s

- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: ./dist

- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SECRET
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
env:
SECRET: "${{ secrets.test_pypi_password }}"

- name: Install twine
run: pip install twine

Expand Down
13 changes: 0 additions & 13 deletions .github/workflows/doc-html-pdf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
# we need fetch-depth 0 so setuptools_scm can resolve tags

- uses: actions/setup-python@v2
name: Install Python
Expand All @@ -39,16 +36,6 @@ jobs:
pip install python-markdown-math
# python -m markdown -x mdx_math --verbose -f proof_of_space.html proof_of_space.md

# - name: Test for secrets access
# id: check_secrets
# shell: bash
# run: |
# unset HAS_SECRET
# if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
# echo ::set-output name=HAS_SECRET::${HAS_SECRET}
# env:
# SECRET: "${{ secrets.test_pypi_password }}"

- name: html to pdf
uses: fifsky/html-to-pdf-action@master
with:
Expand Down
13 changes: 0 additions & 13 deletions .github/workflows/plot-k27-no-bitfield.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,6 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
# we need fetch-depth 0 so setuptools_scm can resolve tags

- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SECRET
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
env:
SECRET: "${{ secrets.test_pypi_password }}"

- uses: actions/setup-python@v2
name: Install Python
Expand Down
13 changes: 0 additions & 13 deletions .github/workflows/plot-k27.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,6 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
# we need fetch-depth 0 so setuptools_scm can resolve tags

- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SECRET
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
env:
SECRET: "${{ secrets.test_pypi_password }}"

- uses: actions/setup-python@v2
name: Install Python
Expand Down

0 comments on commit 31f38eb

Please sign in to comment.