-
Notifications
You must be signed in to change notification settings - Fork 19
132 lines (115 loc) · 3.91 KB
/
wheel.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# 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