This repository has been archived by the owner on Feb 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy path.travis.yml
190 lines (183 loc) · 5.92 KB
/
.travis.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# Get a less shallow clone; needed to get the commit count since
# the previous release branch point right.
git:
depth: 3000
env:
global:
- REPO_DIR=scipy
# Also see DAILY_COMMIT below
- BUILD_COMMIT=main
- PLAT=x86_64
- CYTHON_BUILD_DEP="Cython==0.29.24"
- PYTHRAN_BUILD_DEP="pythran"
- PYBIND11_BUILD_DEP="pybind11>=2.4.3"
- UNICODE_WIDTH=32
- MANYLINUX_URL="https://5cf40426d9f06eb7461d-6fe47d9331aba7cd62fc36c7196769e4.ssl.cf2.rackcdn.com"
- WHEELHOUSE_UPLOADER_USERNAME=travis-worker
# Following generated with
# travis encrypt -r MacPython/scipy-wheels WHEELHOUSE_UPLOADER_SECRET=<the api key>
- secure:
"fne+dO/N+Zv8pusPVO6S58p7lFWLDIwjXwf/IgBPxGSdDFEQVY8xl0+nGPNNzYZfmX/inBrb/3+8el9sggC+X7KG6mGmCtcpwems2sWn6XY5OQ+kWl8SEdDs2SiAsrieqbC3d1cmMoHyddX/YdGWVSdIji70nRER0j9wjNwYNlE="
# Commit when running from master branch
- DAILY_COMMIT=main
language: python
dist: bionic
services: docker
os: linux
jobs:
exclude:
# Exclude the default Python 3.5 build
- python: 3.5
include:
- stage: Build and test wheel
os: linux
name: ARM64-Linux-Py38
arch: arm64-graviton2
dist: focal
virt: vm
group: edge
env:
- MB_PYTHON_VERSION=3.8
- PLAT=aarch64
- CYTHON_BUILD_DEP="Cython"
- DOCKER_IMAGE=quay.io/pypa/manylinux2014_${PLAT}
- MB_ML_VER=2014
script:
- echo "This stage will just build AArch64 wheel"
workspaces:
create:
name: ws3
paths:
- wheelhouse
after_success:
- echo "This stage will not upload aarch64 wheel"
- os: linux
name: ARM64-Linux-Py39
arch: arm64-graviton2
dist: focal
virt: vm
group: edge
env:
- MB_PYTHON_VERSION=3.9
- PLAT=aarch64
- CYTHON_BUILD_DEP="Cython"
- DOCKER_IMAGE=quay.io/pypa/manylinux2014_${PLAT}
- MB_ML_VER=2014
script:
- echo "This stage will just build AArch64 wheel"
workspaces:
create:
name: ws4
paths:
- wheelhouse
after_success:
- echo "This stage will not upload aarch64 wheel"
- os: linux
name: ARM64-Linux-Py310
arch: arm64-graviton2
dist: focal
virt: vm
group: edge
env:
- MB_PYTHON_VERSION=3.10
- PLAT=aarch64
- CYTHON_BUILD_DEP="Cython"
- DOCKER_IMAGE=quay.io/pypa/manylinux2014_${PLAT}
- MB_ML_VER=2014
script:
- echo "This stage will just build AArch64 wheel"
workspaces:
create:
name: ws5
paths:
- wheelhouse
after_success:
- echo "This stage will not upload aarch64 wheel"
- stage: Test wheel
arch: arm64-graviton2
name: ARM64-Linux-Py310
dist: focal
virt: vm
group: edge
env:
- MB_PYTHON_VERSION=3.10
- PLAT=aarch64
- CYTHON_BUILD_DEP="Cython"
- DOCKER_TEST_IMAGE=multibuild/focal_{PLAT}
- MB_ML_VER=2014
workspaces:
use: ws5
install:
- echo "This stage will test and upload the AArch64 wheel"
- arch: arm64-graviton2
name: ARM64-Linux-Py39
dist: focal
virt: vm
group: edge
env:
- MB_PYTHON_VERSION=3.9
- PLAT=aarch64
- CYTHON_BUILD_DEP="Cython"
- DOCKER_TEST_IMAGE=multibuild/focal_{PLAT}
- MB_ML_VER=2014
workspaces:
use: ws4
install:
- echo "This stage will test and upload the AArch64 wheel"
- arch: arm64-graviton2
name: ARM64-Linux-Py38
dist: focal
virt: vm
group: edge
env:
- MB_PYTHON_VERSION=3.8
- PLAT=aarch64
- CYTHON_BUILD_DEP="Cython"
- DOCKER_TEST_IMAGE=multibuild/focal_{PLAT}
- MB_ML_VER=2014
workspaces:
use: ws3
install:
- echo "This stage will test and upload the AArch64 wheel"
before_install:
- if [ "$TRAVIS_BRANCH" == "master" ]; then
CONTAINER="pre-release";
BUILD_COMMIT=${DAILY_COMMIT:-$BUILD_COMMIT};
else
CONTAINER=wheels;
UPLOAD_ARGS="--no-update-index";
fi
- BUILD_DEPENDS="wheel oldest-supported-numpy $CYTHON_BUILD_DEP $PYTHRAN_BUILD_DEP $PYBIND11_BUILD_DEP setuptools<60.0.0"
- TEST_DEPENDS="oldest-supported-numpy pytest pytest-xdist pytest-faulthandler pytest-env"
- source multibuild/common_utils.sh
- source multibuild/travis_steps.sh
- before_install
install:
# Maybe get and clean and patch source
- clean_code $REPO_DIR $BUILD_COMMIT
- ./patch_code.sh $REPO_DIR
- build_wheel $REPO_DIR $PLAT
script:
- install_run $PLAT
after_success:
# trigger an upload to the shared ecosystem
# infrastructure at: https://anaconda.org/scipy-wheels-nightly
# for cron jobs only (restricted to master branch once
# per week)
# SCIPY_WHEELS_NIGHTLY is a secret token
# used in Travis CI config, originally
# generated at anaconda.org for scipy-wheels-nightly
- if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then
ANACONDA_ORG="scipy-wheels-nightly";
pip install git+https://github.com/Anaconda-Platform/anaconda-client.git@ce89e4351eef;
anaconda -t ${SCIPY_WHEELS_NIGHTLY} upload --force -u ${ANACONDA_ORG} ${TRAVIS_BUILD_DIR}/wheelhouse/*.whl;
fi
# for merges (push events) we use the staging area instead;
# SCIPY_STAGING_UPLOAD_TOKEN is a secret token used in Travis
# CI config, originally generated at anaconda.org for
# multibuild-wheels-staging
- if [ "$TRAVIS_EVENT_TYPE" == "push" ]; then
ANACONDA_ORG="multibuild-wheels-staging";
pip install git+https://github.com/Anaconda-Platform/anaconda-client.git@ce89e4351eef;
anaconda -t ${SCIPY_STAGING_UPLOAD_TOKEN} upload --force -u ${ANACONDA_ORG} ${TRAVIS_BUILD_DIR}/wheelhouse/*.whl;
fi