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