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