-
Notifications
You must be signed in to change notification settings - Fork 21
132 lines (115 loc) · 3.97 KB
/
build_wheels.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
132
# Source file on which this is based: https://github.com/scikit-learn/scikit-learn/blob/266d2a2b8d5be2fb074415e22f7411484fd35a46/.github/workflows/wheels.yml
name: Build
on: [push, pull_request, workflow_call]
jobs:
build_wheels:
name: Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }}
runs-on: ${{ matrix.os }}
strategy:
# Ensure that a wheel builder finishes even if another fails
fail-fast: false
matrix:
include:
# Window 64 bit
- os: windows-2019
python: 38
platform_id: win_amd64
- os: windows-latest
python: 39
platform_id: win_amd64
- os: windows-latest
python: 310
platform_id: win_amd64
- os: windows-latest
python: 311
platform_id: win_amd64
# Linux 64 bit manylinux2014
- os: ubuntu-latest
python: 38
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: 39
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: 310
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: 311
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
# MacOS x86_64
- os: macos-latest
python: 38
platform_id: macosx_x86_64
- os: macos-latest
python: 39
platform_id: macosx_x86_64
- os: macos-latest
python: 310
platform_id: macosx_x86_64
- os: macos-latest
python: 311
platform_id: macosx_x86_64
# MacOS arm64
- os: macos-latest
python: 38
platform_id: macosx_arm64
- os: macos-14
python: 39
platform_id: macosx_arm64
- os: macos-14
python: 310
platform_id: macosx_arm64
- os: macos-14
python: 311
platform_id: macosx_arm64
steps:
- name: Checkout PGBM
uses: actions/checkout@v3
- name: Support Clang on Windows
uses: ilammy/msvc-dev-cmd@v1 # to support clang in Windows
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.8' # update once build dependencies are available
- name: Build wheels
env:
CONFTEST_PATH: ${{ github.workspace }}/conftest.py
CONFTEST_NAME: conftest.py
CIBW_ENVIRONMENT: OMP_NUM_THREADS=2
OPENBLAS_NUM_THREADS=2
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }}
CIBW_ARCHS: all
CIBW_TEST_REQUIRES: torch pytest lightgbm
CIBW_TEST_REQUIRES_LINUX: torch --extra-index-url https://download.pytorch.org/whl/cpu pytest lightgbm
CIBW_TEST_COMMAND: bash {project}/.github/scripts/test_wheels.sh {project}
CIBW_BUILD_VERBOSITY: 1
run: bash .github/scripts/build_wheels.sh
- name: Store artifacts
uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
build_sdist:
name: Source distribution
runs-on: ubuntu-latest
steps:
- name: Checkout PGBM
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.8' # update once build dependencies are available
- name: Build source distribution
run: bash .github/scripts/build_source.sh
- name: Test source distribution
run: bash .github/scripts/test_source.sh
env:
OMP_NUM_THREADS: 2
OPENBLAS_NUM_THREADS: 2
- name: Store artifacts
uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz