blob: 4313a6de2cf22e3dde22e9d2b72c7db66a3ebcb7 [file] [log] [blame]
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 update
- sudo apt-get install gcc gfortran
- target=$(python tools/openblas_support.py)
- ls -lR "${target}"
- sudo cp -r "${target}"/lib/* /usr/lib
- sudo cp "${target}"/include/* /usr/include
- python -m 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
- python -m pip install -r test_requirements.txt --cache-dir=/root/.cache/pip/wheels/$SHIPPABLE_PYTHON_VERSION
# install pytest-xdist to leverage a second core
# for unit tests
- python -m 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 -m pip install .
- extra_directories=($SHIPPABLE_REPO_DIR/build/*scripts*)
- extra_path=$(printf "%s:" "${extra_directories[@]}")
- export PATH="${extra_path}${PATH}"
# check OpenBLAS version
- python tools/openblas_support.py --check_version 0.3.7
# run the test suite
- python runtests.py -n --debug-info --show-build-log -- -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., 3.6 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