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