forked from quantopian/zipline
-
Notifications
You must be signed in to change notification settings - Fork 214
133 lines (117 loc) · 3.83 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
133
name: PyPI
on:
workflow_dispatch:
inputs:
target:
type: choice
description: 'Package Index'
required: true
default: 'PYPI'
options: [ 'TESTPYPI', 'PYPI' ]
jobs:
build_wheels:
name: Wheels for ${{ matrix.python }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# os: [ ubuntu-latest , windows-latest, macos-latest ]
os: [ macos-latest ]
python: [ "cp39", "cp310", "cp311", "cp312" ]
arch: [ auto64 ]
steps:
- name: Checkout zipline
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
ref: 3.0.4
- name: Set Xcode version
uses: maxim-lobanov/setup-xcode@v1
if: ${{ matrix.os == 'macos-latest' }}
with:
xcode-version: latest-stable
- name: Wheels macOS / Linux
if: runner.os != 'Windows'
uses: pypa/cibuildwheel@v2.16.2
env:
CIBW_BEFORE_ALL_LINUX: ./tools/install_talib.sh
CIBW_BEFORE_ALL_MACOS: brew install ta-lib
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
CIBW_ARCHS_MACOS: x86_64 arm64
CIBW_BUILD: "${{ matrix.python }}-*"
CIBW_SKIP: "*-musllinux_*"
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.15
CIBW_BEFORE_TEST: pip install -U setuptools
CIBW_TEST_COMMAND_MACOS: python -m pytest -v {project}/tests
CIBW_BEFORE_TEST_MACOS: >
pip install -U setuptools &&
pwd &&
echo ${{ github.workspace }} &&
python -c "import talib" &&
python -c "import zipline" &&
python -m pytest -v ${{ github.workspace }}/tests
- name: Install MSVC amd64
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- name: Wheels Windows
if: runner.os == 'Windows'
uses: pypa/cibuildwheel@v2.18.0
env:
CIBW_BUILD: "${{ matrix.python }}-win_amd64"
CIBW_BEFORE_TEST: pip install -U setuptools
CIBW_BEFORE_TEST_WINDOWS: >
call "c:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 &&
call ./tools/install_talib.bat
- name: Store artifacts
uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: cibw-wheels-${{ matrix.os }}-${{ matrix.cibw_archs }}-${{ strategy.job-index }}
overwrite: true
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- name: Checkout zipline
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
ref: 3.0.4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.11'
- name: Build sdist
run: |
pip install -U pip setuptools build
python -m build --sdist
- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz
upload_pypi:
needs: [ build_wheels, build_sdist ]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- name: Publish to testpypi
if: ${{ github.event.inputs.target == 'TESTPYPI' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TESTPYPI_TOKEN }}
repository_url: https://test.pypi.org/legacy/
- name: Publish to pypi
uses: pypa/gh-action-pypi-publish@release/v1
if: ${{ github.event.inputs.target == 'PYPI' }}
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}