summaryrefslogtreecommitdiff
path: root/shippable.yml
blob: f2605523201465e3640554dc4a608ff953d523aa (plain)
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
branches:
    only:
        - main
        - 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 and newer toolchain for gfortran5
    - sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    - sudo apt-get update
    - sudo apt-get install gcc gfortran libgfortran5
    - 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
    # 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: false

# 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