summaryrefslogtreecommitdiff
path: root/shippable.yml
blob: 75d2dcafe7403aab6ab88cd006dfbe2a312a49a0 (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
68
69
70
71
72
73
74
75
76
77
78
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
    # ARMv8 OpenBLAS built using script available here:
    # https://github.com/tylerjereddy/openblas-static-gcc/tree/master/ARMv8
    # build done on GCC compile farm machine named gcc115
    # tarball uploaded manually to an unshared Dropbox location
    - wget -O openblas-v0.3.5-armv8.tar.gz https://www.dropbox.com/s/pbqkxzlmih4cky1/openblas-v0.3.5-armv8.tar.gz?dl=0
    - tar zxvf openblas-v0.3.5-armv8.tar.gz
    - sudo cp -r ./64/lib/* /usr/lib
    - sudo cp ./64/include/* /usr/include
    # 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