Update an overlooked instance of xcode 10.0 as well
[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         - make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
20         - make -C test $COMMON_FLAGS $BTYPE
21         - make -C ctest $COMMON_FLAGS $BTYPE
22         - make -C utest $COMMON_FLAGS $BTYPE
23       env:
24         - TARGET_BOX=LINUX64
25         - BTYPE="BINARY=64"
26
27     - <<: *test-ubuntu
28       os: linux-ppc64le
29       before_script:
30         - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=POWER8 NUM_THREADS=32"
31       env:
32         # for matrix annotation only
33         - TARGET_BOX=PPC64LE_LINUX
34         - BTYPE="BINARY=64 USE_OPENMP=1"
35
36     - <<: *test-ubuntu
37       os: linux
38       arch: s390x
39       before_script:
40         - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=Z13 NUM_THREADS=32"
41       env:
42         # for matrix annotation only
43         - TARGET_BOX=IBMZ_LINUX
44         - BTYPE="BINARY=64 USE_OPENMP=1"
45
46     - <<: *test-ubuntu
47       os: linux
48       dist: focal
49       arch: s390x
50       compiler: clang
51       before_script:
52         - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=Z13 NUM_THREADS=32"
53       env:
54         # for matrix annotation only
55         - TARGET_BOX=IBMZ_LINUX
56         - BTYPE="BINARY=64 USE_OPENMP=0 CC=clang"
57
58     - <<: *test-ubuntu
59       env:
60         - TARGET_BOX=LINUX64
61         - BTYPE="BINARY=64 USE_OPENMP=1"
62
63     - <<: *test-ubuntu
64       env:
65         - TARGET_BOX=LINUX64
66         - BTYPE="BINARY=64 INTERFACE64=1"
67
68     - <<: *test-ubuntu
69       compiler: clang
70       env:
71         - TARGET_BOX=LINUX64
72         - BTYPE="BINARY=64 CC=clang"
73
74     - <<: *test-ubuntu
75       compiler: clang
76       env:
77         - TARGET_BOX=LINUX64
78         - BTYPE="BINARY=64 INTERFACE64=1 CC=clang"
79
80     - <<: *test-ubuntu
81       addons:
82         apt:
83           packages:
84             - gcc-multilib
85             - gfortran-multilib
86       env:
87         - TARGET_BOX=LINUX32
88         - BTYPE="BINARY=32"
89
90     - os: linux
91       arch: ppc64le
92       dist: bionic
93       compiler: gcc
94       before_script:
95         - sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' -y
96         - sudo apt-get update
97         - sudo apt-get install gcc-9 gfortran-9 -y
98       script:
99         - make QUIET_MAKE=1  BINARY=64 USE_OPENMP=1 CC=gcc-9 FC=gfortran-9
100         - make -C test $COMMON_FLAGS $BTYPE
101         - make -C ctest $COMMON_FLAGS $BTYPE
102         - make -C utest $COMMON_FLAGS $BTYPE 
103       env:
104         # for matrix annotation only
105         - TARGET_BOX=PPC64LE_LINUX_P9
106
107     - os: linux
108       arch: ppc64le
109       dist: bionic
110       compiler: gcc
111       before_script:
112         - sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' -y
113         - sudo apt-get update
114         - sudo apt-get install gcc-9 gfortran-9 -y
115       script:
116         - make QUIET_MAKE=1  BUILD_BFLOAT16=1 BINARY=64 USE_OPENMP=1 CC=gcc-9 FC=gfortran-9
117         - make -C test $COMMON_FLAGS $BTYPE
118         - make -C ctest $COMMON_FLAGS $BTYPE
119         - make -C utest $COMMON_FLAGS $BTYPE 
120       env:
121         # for matrix annotation only
122         - TARGET_BOX=PPC64LE_LINUX_P9
123
124     - os: linux
125       compiler: gcc
126       addons:
127         apt:
128           packages:
129             - binutils-mingw-w64-x86-64
130             - gcc-mingw-w64-x86-64
131             - gfortran-mingw-w64-x86-64
132       before_script: *common-before
133       script:
134         - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
135       env:
136         - TARGET_BOX=WIN64
137         - BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
138
139     # Build & test on Alpine Linux inside chroot, i.e. on system with musl libc.
140     # These jobs needs sudo, so Travis runs them on VM-based infrastructure
141     # which is slower than container-based infrastructure used for jobs
142     # that don't require sudo.
143     - &test-alpine
144       os: linux
145       dist: trusty
146       sudo: true
147       language: minimal
148       before_install:
149         - "wget 'https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.9.0/alpine-chroot-install' \
150           && echo 'e5dfbbdc0c4b3363b99334510976c86bfa6cb251  alpine-chroot-install' | sha1sum -c || exit 1"
151         - alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
152       install:
153         - sudo sh alpine-chroot-install -p 'build-base gfortran perl linux-headers'
154       before_script: *common-before
155       script:
156         # XXX: Disable some warnings for now to avoid exceeding Travis limit for log size.
157         - alpine make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
158               CFLAGS="-Wno-misleading-indentation -Wno-sign-conversion -Wno-incompatible-pointer-types"
159         - alpine make -C test $COMMON_FLAGS $BTYPE
160         - alpine make -C ctest $COMMON_FLAGS $BTYPE
161         - alpine make -C utest $COMMON_FLAGS $BTYPE
162       env:
163         - TARGET_BOX=LINUX64_MUSL
164         - BTYPE="BINARY=64"
165
166     # XXX: This job segfaults in TESTS OF THE COMPLEX LEVEL 3 BLAS,
167     # but only on Travis CI, cannot reproduce it elsewhere.
168     #- &test-alpine-openmp
169     #  <<: *test-alpine
170     #  env:
171     #    - TARGET_BOX=LINUX64_MUSL
172     #    - BTYPE="BINARY=64 USE_OPENMP=1"
173
174     - <<: *test-alpine
175       env:
176         - TARGET_BOX=LINUX64_MUSL
177         - BTYPE="BINARY=64 INTERFACE64=1"
178
179     # Build with the same flags as Alpine do in OpenBLAS package.
180     - <<: *test-alpine
181       env:
182         - TARGET_BOX=LINUX64_MUSL
183         - BTYPE="BINARY=64 NO_AFFINITY=1 USE_OPENMP=0 NO_LAPACK=0 TARGET=CORE2"
184
185     - &test-cmake
186       os: linux
187       compiler: clang
188       addons:
189         apt:
190           packages:
191             - gfortran
192             - cmake
193       dist: trusty
194       sudo: true
195       before_script:
196         - COMMON_ARGS="-DTARGET=NEHALEM -DNUM_THREADS=32"
197       script:
198         - mkdir build
199         - CONFIG=Release
200         - cmake -Bbuild -H. $CMAKE_ARGS $COMMON_ARGS -DCMAKE_BUILD_TYPE=$CONFIG
201         - cmake --build build --config $CONFIG -- -j2
202       env:
203         - CMAKE=1
204     - <<: *test-cmake
205       env:
206         - CMAKE=1 CMAKE_ARGS="-DNOFORTRAN=1"
207     - <<: *test-cmake
208       compiler: gcc
209       env:
210         - CMAKE=1
211
212     - &test-macos
213       os: osx
214       osx_image: xcode11.5
215       before_script:
216         - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
217         - brew update
218         - brew install gcc@8 # for gfortran
219       script:
220         - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
221       env:
222         - BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-8"
223
224     - <<: *test-macos
225       osx_image: xcode12
226       before_script:
227         - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
228         - brew update
229         - brew install gcc@10 # for gfortran
230       script:
231         - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
232       env:
233         - BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-10"
234         
235     - <<: *test-macos
236       osx_image: xcode11.5
237       env:
238         - BTYPE="TARGET=NEHALEM BINARY=32 NOFORTRAN=1"
239
240     - <<: *test-macos
241       osx_image: xcode11.5
242       before_script:
243         - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
244         - brew update
245       env:
246 #        - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
247 #        - 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"
248         - CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
249         - CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.5.sdk -arch arm64 -miphoneos-version-min=10.0"
250         - BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
251     - <<: *test-macos
252       osx_image: xcode11.5
253       env:
254 #        - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
255 #        - CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch armv7 -miphoneos-version-min=5.1"
256         - CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
257         - CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.5.sdk -arch armv7 -miphoneos-version-min=5.1"
258         - BTYPE="TARGET=ARMV7 HOSTCC=clang NOFORTRAN=1"
259
260     - &test-graviton2
261       os: linux
262       arch: arm64-graviton2
263       dist: focal
264       group: edge
265       virt: lxd
266       compiler: gcc
267       addons:
268         apt:
269           packages:
270             - gfortran
271       script:
272         - travis_wait 45 make && make lapack-test
273         
274 # whitelist
275 branches:
276   only:
277     - master
278     - develop
279
280 notifications:
281   webhooks:
282     urls:
283       - https://webhooks.gitter.im/e/8a6e4470a0cebd090344
284     on_success: change  # options: [always|never|change] default: always
285     on_failure: always  # options: [always|never|change] default: always
286     on_start: never     # options: [always|never|change] default: always