Skip to content

Commit

Permalink
Merge pull request #757 from rgommers/macos-wheels
Browse files Browse the repository at this point in the history
CI: add macOS nightly wheels for free-threaded CPython
  • Loading branch information
rgommers authored Jun 27, 2024
2 parents 5d15c44 + dbc066c commit 73c11d3
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 3 deletions.
74 changes: 72 additions & 2 deletions .github/workflows/freethreaded_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ jobs:
name: Install Python
with:
python-version: "3.10"
- name: Setup environment variables

- name: Install build deps; set CIBW environment variables
run: |
PYPI_URL="https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
CIBW_DEPS="pip install --upgrade pip build &&\
Expand Down Expand Up @@ -72,9 +73,78 @@ jobs:
path: ./dist/*.whl
if-no-files-found: error

build_macos_free_threaded_wheels:
name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# macos-13 is the last runner that supports Intel (x86_64) architecture
os: [macos-13, macos-14]
cibw_python: ["cp313t"]
cibw_arch: ["x86_64", "arm64"]
exclude:
- os: macos-14
cibw_arch: "x86_64"
- os: macos-13
cibw_arch: "arm64"
steps:
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
with:
fetch-depth: 0

- uses: actions/setup-python@v5
name: Install Python
with:
python-version: "3.12"

- name: Install build deps; set CIBW environment variables
run: |
PYPI_URL="https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
CIBW_DEPS="pip install --upgrade pip build &&\
pip install --pre -i $PYPI_URL cython numpy scipy &&\
pip install pytest meson-python ninja"
echo "CIBW_BEFORE_BUILD=$CIBW_DEPS" >> "$GITHUB_ENV"
echo "CIBW_BEFORE_TEST=$CIBW_DEPS" >> "$GITHUB_ENV"
echo "CIBW_TEST_COMMAND=PYTHON_GIL=0 $CIBW_TEST_COMMAND" >> "$GITHUB_ENV"
- name: Build wheels for CPython (macOS) (x86_64)
if: matrix.cibw_arch == 'x86_64'
uses: pypa/cibuildwheel@a8d190a111314a07eb5116036c4b3fb26a4e3162 # v2.19.0
with:
output-dir: dist
env:
CIBW_BUILD: ${{ matrix.cibw_python }}-*
CIBW_ARCHS_MACOS: ${{ matrix.cibw_arch }}
CIBW_PRERELEASE_PYTHONS: True
CIBW_FREE_THREADED_SUPPORT: True
CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation"

- name: Build wheels for CPython (macOS) (arm64)
if: matrix.cibw_arch == 'arm64'
uses: pypa/cibuildwheel@a8d190a111314a07eb5116036c4b3fb26a4e3162 # v2.19.0
with:
output-dir: dist
env:
CIBW_BUILD: ${{ matrix.cibw_python }}-*
CIBW_ARCHS_MACOS: ${{ matrix.cibw_arch }}
CIBW_PRERELEASE_PYTHONS: True
CIBW_FREE_THREADED_SUPPORT: True
CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation"

- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: wheels_macos_${{ matrix.cibw_arch }}_${{ matrix.cibw_python }}
path: ./dist/*.whl
if-no-files-found: error

deploy_anaconda:
name: Release (Anaconda)
needs: [build_linux_x86_64_free_threaded_wheels]
needs:
[
build_linux_x86_64_free_threaded_wheels,
build_macos_free_threaded_wheels,
]
# Run only on pushes to the main branch, on schedule, or when triggered manually
if: >-
github.repository == 'PyWavelets/pywt' &&
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/wheel_tests_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
CIBW_BUILD: ${{ matrix.cibw_python }}-*
CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }}
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
CIBW_MUSLLINUX_AARCH64_IMAGE: musllinux_1_1
CIBW_MUSLLINUX_AARCH64_IMAGE: musllinux_1_2
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: wheels_linux_${{ matrix.cibw_arch }}_${{ matrix.cibw_python }}
Expand Down

0 comments on commit 73c11d3

Please sign in to comment.