Skip to content

Create a special action to upload version-limited Mac-ARM wheels #2

Create a special action to upload version-limited Mac-ARM wheels

Create a special action to upload version-limited Mac-ARM wheels #2

name: Build and upload PyPI wheels for ARM Mac
on:
push:
workflow_dispatch:
jobs:
build:
strategy:
matrix:
os: [macos-latest]
python-version: ['3.10', '3.11']
include:
- os: macos-latest
wheelname: macos
# Build wheels against the lowest compatible Numpy version
- python-version: 3.10
numpy-version: 1.21.3
- python-version: 3.11
numpy-version: 1.23.2
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure tags are fetched for versioning
- name: Setup Python ${{ matrix.python-version }} with Conda
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
channels: conda-forge,defaults
channel-priority: true
- name: Update Python pip, wheel, and twine
shell: bash -l {0}
run: |
python -m pip install --upgrade pip wheel twine
- name: Install llvm on Macos
if: startsWith(matrix.os, 'macos')
run: brew install llvm
- name: Build Python wheel
if: matrix.os != 'ubuntu-latest'
shell: bash -l {0}
env:
NUMPY_VERSION: ${{ matrix.numpy-version }}
run: |
# Build against lowest required Numpy version
python -m pip install numpy==${NUMPY_VERSION}
python -m pip wheel . -w wheelhouse --no-deps
- name: Upload wheels as build artifacts
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.wheelname }}-${{ matrix.python-version }}
path: wheelhouse/*-${{ matrix.wheelname }}*.whl
publish:
needs: build
name: Upload release to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/euphonic
permissions:
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # This is possibly unnecessary?
- name: Download artifacts to Ubuntu environment
uses: actions/download-artifact@v4
with:
path: dist/
merge-multiple: true
- name: List Files
run: ls -R
- name: Upload wheels to PyPI
uses: pypa/gh-action-pypi-publish@release/v1