forked from numpy/numpy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
shippable.yml
70 lines (61 loc) · 2.2 KB
/
shippable.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
branches:
only:
- master
- maintenance/*
language: python
python:
# use versions available for job image
# aarch64_u16pytall:v6.7.4
# (what we currently have access to by default)
# this is a bit restrictive in terms
# of version availability / control,
# but it is convenient
- 3.7
runtime:
# use the free open source pool of nodes
# only for ARM platform
nodePool: shippable_shared_aarch64
build:
ci:
# install dependencies
- sudo apt-get install gcc gfortran libblas-dev liblapack-dev
# add pathlib for Python 2, otherwise many tests are skipped
- pip install --upgrade pip
# we will pay the ~13 minute cost of compiling Cython only when a new
# version is scraped in by pip; otherwise, use the cached
# wheel shippable places on Amazon S3 after we build it once
- pip install cython --cache-dir=/root/.cache/pip/wheels/$SHIPPABLE_PYTHON_VERSION
- pip install pathlib
# install pytz for datetime testing
- pip install pytz
# install pytest-xdist to leverage a second core
# for unit tests
- pip install pytest-xdist
# build and test numpy
- export PATH=$PATH:$SHIPPABLE_REPO_DIR
# build first and adjust PATH so f2py is found in scripts dir
# use > 1 core for build sometimes slows down a fair bit,
# other times modestly speeds up, so avoid for now
- python setup.py install
- extra_directories=($SHIPPABLE_REPO_DIR/build/*scripts*)
- extra_path=$(printf "%s:" "${extra_directories[@]}")
- export PATH="${extra_path}${PATH}"
# run the test suite
- python runtests.py -- -rsx --junit-xml=$SHIPPABLE_REPO_DIR/shippable/testresults/tests.xml -n 2 --durations=10
cache: true
cache_dir_list:
# the NumPy project uses a single Amazon S3 cache
# so upload the parent path of the Python-specific
# version paths to avoid i.e., 2.7 overwriting
# 3.7 pip cache (seems to be an issue)
- /root/.cache/pip/wheels
# disable email notification
# of CI job result
integrations:
notifications:
- integrationName: email
type: email
on_success: never
on_failure: never
on_cancel: never
on_pull_request: never