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