Add an AVX512 enabled DSCAL function
[platform/upstream/openblas.git] / .travis.yml
1 # XXX: Precise is already deprecated, new default is Trusty.
2 # https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
3 dist: precise
4 sudo: true
5 language: c
6
7 jobs:
8   include:
9     - &test-ubuntu
10       os: linux
11       stage: test
12       compiler: gcc
13       addons:
14         apt:
15           packages:
16             - gfortran
17       before_script: &common-before
18         - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32"
19       script:
20         - set -e
21         - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
22         - make -C test $COMMON_FLAGS $BTYPE
23         - make -C ctest $COMMON_FLAGS $BTYPE
24         - make -C utest $COMMON_FLAGS $BTYPE
25       env:
26         - TARGET_BOX=LINUX64
27         - BTYPE="BINARY=64"
28
29     - <<: *test-ubuntu
30       env:
31         - TARGET_BOX=LINUX64
32         - BTYPE="BINARY=64 USE_OPENMP=1"
33
34     - <<: *test-ubuntu
35       env:
36         - TARGET_BOX=LINUX64
37         - BTYPE="BINARY=64 INTERFACE64=1"
38
39     - <<: *test-ubuntu
40       compiler: clang
41       env:
42         - TARGET_BOX=LINUX64
43         - BTYPE="BINARY=64 CC=clang"
44
45     - <<: *test-ubuntu
46       compiler: clang
47       env:
48         - TARGET_BOX=LINUX64
49         - BTYPE="BINARY=64 INTERFACE64=1 CC=clang"
50
51     - <<: *test-ubuntu
52       addons:
53         apt:
54           packages:
55             - gcc-multilib
56             - gfortran-multilib
57       env:
58         - TARGET_BOX=LINUX32
59         - BTYPE="BINARY=32"
60
61     - os: linux
62       stage: test
63       compiler: gcc
64       addons:
65         apt:
66           packages:
67             - binutils-mingw-w64-x86-64
68             - gcc-mingw-w64-x86-64
69             - gfortran-mingw-w64-x86-64
70       before_script: *common-before
71       script:
72         - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
73       env:
74         - TARGET_BOX=WIN64
75         - BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
76
77     # Build & test on Alpine Linux inside chroot, i.e. on system with musl libc.
78     # These jobs needs sudo, so Travis runs them on VM-based infrastructure
79     # which is slower than container-based infrastructure used for jobs
80     # that don't require sudo.
81     - &test-alpine
82       os: linux
83       stage: test
84       dist: trusty
85       sudo: true
86       language: minimal
87       before_install:
88         - "wget 'https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.6.0/alpine-chroot-install' \
89               && echo 'a827a4ba3d0817e7c88bae17fe34e50204983d1e  alpine-chroot-install' | sha1sum -c || exit 1"
90         - alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
91       install:
92         - sudo sh alpine-chroot-install -p 'build-base gfortran perl linux-headers'
93       before_script: *common-before
94       script:
95         - set -e
96         # XXX: Disable some warnings for now to avoid exceeding Travis limit for log size.
97         - alpine make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
98               CFLAGS="-Wno-misleading-indentation -Wno-sign-conversion -Wno-incompatible-pointer-types"
99         - alpine make -C test $COMMON_FLAGS $BTYPE
100         - alpine make -C ctest $COMMON_FLAGS $BTYPE
101         - alpine make -C utest $COMMON_FLAGS $BTYPE
102       env:
103         - TARGET_BOX=LINUX64_MUSL
104         - BTYPE="BINARY=64"
105
106     # XXX: This job segfaults in TESTS OF THE COMPLEX LEVEL 3 BLAS,
107     # but only on Travis CI, cannot reproduce it elsewhere.
108     #- &test-alpine-openmp
109     #  <<: *test-alpine
110     #  env:
111     #    - TARGET_BOX=LINUX64_MUSL
112     #    - BTYPE="BINARY=64 USE_OPENMP=1"
113
114     - <<: *test-alpine
115       env:
116         - TARGET_BOX=LINUX64_MUSL
117         - BTYPE="BINARY=64 INTERFACE64=1"
118
119     # Build with the same flags as Alpine do in OpenBLAS package.
120     - <<: *test-alpine
121       env:
122         - TARGET_BOX=LINUX64_MUSL
123         - BTYPE="BINARY=64 NO_AFFINITY=1 USE_OPENMP=0 NO_LAPACK=0 TARGET=core2"
124
125     - &test-cmake
126       os: linux
127       stage: test
128       compiler: clang
129       addons:
130         apt:
131           packages:
132             - gfortran
133             - cmake
134       dist: trusty
135       sudo: true
136       before_script:
137         - COMMON_ARGS="-DTARGET=NEHALEM -DNUM_THREADS=32"
138       script:
139         - set -e
140         - mkdir build
141         - CONFIG=Release
142         - cmake -Bbuild -H. $CMAKE_ARGS $COMMON_ARGS -DCMAKE_BUILD_TYPE=$CONFIG
143         - cmake --build build --config $CONFIG -- -j2
144       env:
145         - CMAKE=1
146     - <<: *test-cmake
147       env:
148         - CMAKE=1 CMAKE_ARGS="-DNOFORTRAN=1"
149     - <<: *test-cmake
150       compiler: gcc
151       env:
152         - CMAKE=1
153
154     - &test-macos
155       os: osx
156       stage: test
157       osx_image: xcode8
158       before_script:
159         - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32"
160         - brew update
161         - brew install gcc # for gfortran
162       script:
163         - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
164       env:
165         - BTYPE="BINARY=64 INTERFACE64=1"
166
167     - <<: *test-macos
168       env:
169         - BTYPE="BINARY=32"
170
171 # whitelist
172 branches:
173   only:
174     - master
175     - develop
176
177 notifications:
178   webhooks:
179     urls:
180       - https://webhooks.gitter.im/e/8a6e4470a0cebd090344
181     on_success: change  # options: [always|never|change] default: always
182     on_failure: always  # options: [always|never|change] default: always
183     on_start: never     # options: [always|never|change] default: always