Merge pull request #3364 from guowangy/bf16-cooperlake
[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:
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 #      script:
218 #        - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
219 #      env:
220 #        - BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-9"
221 #
222 #    - <<: *test-macos
223 #      osx_image: xcode12
224 #      before_script:
225 #        - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
226 #        - brew update
227 #      script:
228 #        - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
229 #      env:
230 #        - BTYPE="TARGET=HASWELL USE_OPENMP=1 BINARY=64 INTERFACE64=1 CC=gcc-10 FC=gfortran-10"
231 #
232 #    - <<: *test-macos
233 #      osx_image: xcode12
234 #      before_script:
235 #        - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
236 #        - brew update
237 #      script:
238 #        - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
239 #      env:
240 #        - BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-10"      
241
242   #  - <<: *test-macos
243   #    osx_image: xcode10
244   #    env:
245   #      - BTYPE="TARGET=NEHALEM BINARY=32 NOFORTRAN=1"
246
247 #    - <<: *test-macos
248 #      osx_image: xcode11.5
249 #      before_script:
250 #        - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
251 #        - brew update
252 #      env:
253 #        - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
254 #        - 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"
255 #        - CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
256 #        - 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"
257 #        - BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
258 #    - <<: *test-macos
259 #      osx_image: xcode11.5
260 #      env:
261 ##        - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
262 ##        - 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"
263 #        - CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
264 #        - 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"
265 #        - BTYPE="TARGET=ARMV7 HOSTCC=clang NOFORTRAN=1"
266
267     - &test-graviton2
268       os: linux
269       arch: arm64-graviton2
270       dist: focal
271       group: edge
272       virt: lxd
273       compiler: gcc
274       addons:
275         apt:
276           packages:
277             - gfortran
278       script:
279         - travis_wait 45 make && make lapack-test
280         
281 # whitelist
282 branches:
283   only:
284     - master
285     - develop
286
287 notifications:
288   webhooks:
289     urls:
290       - https://webhooks.gitter.im/e/8a6e4470a0cebd090344
291     on_success: change  # options: [always|never|change] default: always
292     on_failure: always  # options: [always|never|change] default: always
293     on_start: never     # options: [always|never|change] default: always