No strncasecmp with MSVC
[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: false
5 language: c
6 compiler: gcc
7
8 jobs:
9   include:
10     - &test-ubuntu
11       stage: test
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       env:
30         - TARGET_BOX=LINUX64
31         - BTYPE="BINARY=64 USE_OPENMP=1"
32
33     - <<: *test-ubuntu
34       env:
35         - TARGET_BOX=LINUX64
36         - BTYPE="BINARY=64 INTERFACE64=1"
37
38     - <<: *test-ubuntu
39       addons:
40         apt:
41           packages:
42             - gcc-multilib
43             - gfortran-multilib
44       env:
45         - TARGET_BOX=LINUX32
46         - BTYPE="BINARY=32"
47
48     - stage: test
49       addons:
50         apt:
51           packages:
52             - binutils-mingw-w64-x86-64
53             - gcc-mingw-w64-x86-64
54             - gfortran-mingw-w64-x86-64
55       before_script: *common-before
56       script:
57         - make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
58       env:
59         - TARGET_BOX=WIN64
60         - BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
61
62     # Build & test on Alpine Linux inside chroot, i.e. on system with musl libc.
63     # These jobs needs sudo, so Travis runs them on VM-based infrastructure
64     # which is slower than container-based infrastructure used for jobs
65     # that don't require sudo.
66     - &test-alpine
67       stage: test
68       dist: trusty
69       sudo: true
70       language: minimal
71       before_install:
72         - "wget 'https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.6.0/alpine-chroot-install' \
73               && echo 'a827a4ba3d0817e7c88bae17fe34e50204983d1e  alpine-chroot-install' | sha1sum -c || exit 1"
74         - alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
75       install:
76         - sudo sh alpine-chroot-install -p 'build-base gfortran perl linux-headers'
77       before_script: *common-before
78       script:
79         - set -e
80         # XXX: Disable some warnings for now to avoid exceeding Travis limit for log size.
81         - alpine make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
82               CFLAGS="-Wno-misleading-indentation -Wno-sign-conversion -Wno-incompatible-pointer-types"
83         - alpine make -C test $COMMON_FLAGS $BTYPE
84         - alpine make -C ctest $COMMON_FLAGS $BTYPE
85         - alpine make -C utest $COMMON_FLAGS $BTYPE
86       env:
87         - TARGET_BOX=LINUX64_MUSL
88         - BTYPE="BINARY=64"
89
90     # XXX: This job segfaults in TESTS OF THE COMPLEX LEVEL 3 BLAS,
91     # so it's "allowed to fail" for now (see allow_failures).
92     - &test-alpine-openmp
93       <<: *test-alpine
94       env:
95         - TARGET_BOX=LINUX64_MUSL
96         - BTYPE="BINARY=64 USE_OPENMP=1"
97
98     - <<: *test-alpine
99       env:
100         - TARGET_BOX=LINUX64_MUSL
101         - BTYPE="BINARY=64 INTERFACE64=1"
102
103     # Build with the same flags as Alpine do in OpenBLAS package.
104     - <<: *test-alpine
105       env:
106         - TARGET_BOX=LINUX64_MUSL
107         - BTYPE="BINARY=64 NO_AFFINITY=1 USE_OPENMP=0 NO_LAPACK=0 TARGET=core2"
108
109   allow_failures:
110     - <<: *test-alpine-openmp
111
112 # whitelist
113 branches:
114   only:
115     - master
116     - develop
117
118 notifications:
119   webhooks:
120     urls:
121       - https://webhooks.gitter.im/e/8a6e4470a0cebd090344
122     on_success: change  # options: [always|never|change] default: always
123     on_failure: always  # options: [always|never|change] default: always
124     on_start: never     # options: [always|never|change] default: always