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
# This workflow is in a test stage. | |
# simplified version from the scikit-learn's wheel.yml | |
# original version: https://github.com/scikit-learn/scikit-learn/blob/main/.github/workflows/wheels.yml | |
# Workflow to build and test wheels | |
name: Wheel builder | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
# Manual run | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
# Build the wheels for Linux, Windows and macOS for Python 3.9 and newer | |
build_wheels: | |
name: Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ matrix.manylinux_image }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# Ensure that a wheel builder finishes even if another fails | |
fail-fast: false | |
matrix: | |
include: | |
# Window 64 bit | |
# Note: windows-2019 is needed for older Python versions: | |
# https://github.com/scikit-learn/scikit-learn/issues/22530 | |
- os: windows-latest | |
python: 311 | |
platform_id: win_amd64 | |
- os: windows-latest | |
python: 312 | |
platform_id: win_amd64 | |
- os: windows-latest | |
python: 313 | |
platform_id: win_amd64 | |
# Linux 64 bit manylinux2014 | |
- os: ubuntu-latest | |
python: 311 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
- os: ubuntu-latest | |
python: 312 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
- os: ubuntu-latest | |
python: 313 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
# MacOS x86_64 | |
- os: macos-latest | |
python: 311 | |
platform_id: macosx_x86_64 | |
- os: macos-latest | |
python: 312 | |
platform_id: macosx_x86_64 | |
- os: macos-latest | |
python: 313 | |
platform_id: macosx_x86_64 | |
# MacOS arm64 | |
- os: macos-latest | |
python: 311 | |
platform_id: macosx_arm64 | |
- os: macos-latest | |
python: 312 | |
platform_id: macosx_arm64 | |
- os: macos-latest | |
python: 313 | |
platform_id: macosx_arm64 | |
steps: | |
- name: Checkout cmf | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' # update once build dependencies are available | |
- name: Install cibuildwheel | |
run: python -m pip install cibuildwheel setuptools numpy | |
- name: Build wheels | |
env: | |
CIBW_PRERELEASE_PYTHONS: ${{ matrix.prerelease }} | |
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }} | |
CIBW_ARCHS: all | |
CIBW_BEFORE_ALL: python -m pip install numpy cmake setuptools | |
CIBW_BEFORE_BUILD: python -m pip install numpy cmake setuptools | |
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_image }} | |
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux_image }} | |
CIBW_BUILD_VERBOSITY: 1 | |
run: python -m cibuildwheel --output-dir wheelhouse | |
- name: Store artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
path: wheelhouse/*.whl | |
# Build the source distribution under Linux | |
build_sdist: | |
name: Source distribution | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout cmf | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' # update once build dependencies are available | |
- name: Setup dependencies | |
run: python -m pip install setuptools numpy | |
- name: Build source distribution | |
run: python setup.py sdist | |
- name: Store artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
path: dist/*.tar.gz | |