b5fc4431811069bb16f00a8eb5600819b73bbcf8
[openssl.git] / .travis.yml
1 dist: trusty
2 sudo: required
3
4 language: c
5 cache: ccache
6
7 before_install:
8     - if [ -n "$COVERALLS" ]; then
9           pip install --user cpp-coveralls;
10       fi;
11
12 addons:
13     apt:
14         packages:
15             - ccache
16
17 os:
18     - linux
19
20 compiler:
21     - clang
22     - gcc
23
24 env:
25     - CONFIG_OPTS="" DESTDIR="_install"
26     - CONFIG_OPTS="--debug no-shared enable-crypto-mdebug enable-rc5 enable-md2"
27     - CONFIG_OPTS="no-pic --strict-warnings" BUILDONLY="yes"
28     - CONFIG_OPTS="no-engine no-shared --strict-warnings" BUILDONLY="yes"
29     - CONFIG_OPTS="no-stdio --strict-warnings" BUILDONLY="yes"
30     - CONFIG_OPTS="no-ec" BUILDONLY="yes"
31     - CONFIG_OPTS="no-asm --strict-warnings" BUILDONLY="yes" CHECKDOCS="yes"
32
33 matrix:
34     include:
35         - os: linux
36           compiler: clang-3.9
37           env: CONFIG_OPTS="--strict-warnings no-deprecated" BUILDONLY="yes"
38         - os: linux
39           compiler: gcc
40           env: CONFIG_OPTS="--debug --coverage no-asm enable-rc5 enable-md2 enable-ec_nistp_64_gcc_128 enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers" COVERALLS="yes"
41         - os: linux
42           compiler: clang-3.9
43           env: CONFIG_OPTS="enable-asan"
44         - os: linux
45           compiler: clang-3.9
46           env: CONFIG_OPTS="enable-msan"
47         - os: linux
48           compiler: clang-3.9
49           env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method -fno-sanitize=alignment"
50         - os: linux
51           compiler: clang-3.9
52           env: CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2"
53         - os: linux
54           compiler: clang-3.9
55           env: CONFIG_OPTS="no-stdio"
56         - os: linux
57           addons:
58               apt:
59                   packages:
60                       - gcc-5
61                   sources:
62                       - ubuntu-toolchain-r-test
63           compiler: gcc-5
64           env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC"
65         - os: linux
66           addons:
67               apt:
68                   packages:
69                       - binutils-mingw-w64
70                       - gcc-mingw-w64
71           compiler: i686-w64-mingw32-gcc
72           env: CONFIG_OPTS="no-pic" TESTS="-test_fuzz"
73         - os: linux
74           addons:
75               apt:
76                   packages:
77                       - binutils-mingw-w64
78                       - gcc-mingw-w64
79           compiler: i686-w64-mingw32-gcc
80           env: CONFIG_OPTS="no-stdio" BUILDONLY="yes"
81         - os: linux
82           addons:
83               apt:
84                   packages:
85                       - binutils-mingw-w64
86                       - gcc-mingw-w64
87           compiler: x86_64-w64-mingw32-gcc
88           env: CONFIG_OPTS="no-pic" TESTS="-test_fuzz"
89         - os: linux
90           addons:
91               apt:
92                   packages:
93                       - binutils-mingw-w64
94                       - gcc-mingw-w64
95           compiler: x86_64-w64-mingw32-gcc
96           env: CONFIG_OPTS="no-stdio" BUILDONLY="yes"
97     exclude:
98         - os: linux
99           compiler: clang
100         - os: osx
101           compiler: gcc
102
103 before_script:
104     - if [ -n "$DESTDIR" ]; then
105           sh .travis-create-release.sh $TRAVIS_OS_NAME;
106           tar -xvzf _srcdist.tar.gz;
107           mkdir _build;
108           cd _build;
109           srcdir=../_srcdist;
110           top=..;
111       else
112           srcdir=.;
113           top=.;
114       fi
115     - if [ "$CC" == i686-w64-mingw32-gcc ]; then
116           export CROSS_COMPILE=${CC%%gcc}; unset CC;
117           $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format;
118       elif [ "$CC" == x86_64-w64-mingw32-gcc ]; then
119           export CROSS_COMPILE=${CC%%gcc}; unset CC;
120           $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format;
121       else
122           if [ "$CC" == clang-3.9 ]; then
123               sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang;
124               curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add -;
125               echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee -a /etc/apt/sources.list > /dev/null;
126               sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test";
127               sudo -E apt-get -yq update;
128               sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9;
129           elif which ccache >/dev/null; then
130               CC="ccache $CC";
131           fi;
132           $srcdir/config -v $CONFIG_OPTS;
133       fi
134     - if [ -z "$BUILDONLY" ]; then
135           if [ -n "$CROSS_COMPILE" ]; then
136               if [ "$TRAVIS_OS_NAME" == "linux" ]; then
137                   sudo dpkg --add-architecture i386;
138                   sudo apt-get update;
139               fi;
140           fi;
141       fi
142     - cd $top
143
144 script:
145     - if [ -z "$BUILDONLY" ]; then
146           make="make -s";
147       else
148           make="make";
149       fi
150     - if [ -n "$DESTDIR" ]; then
151           cd _build;
152           top=..;
153       else
154           top=.;
155       fi
156     - if $make update; then
157           echo -e '+\057 MAKE UPDATE OK';
158       else
159           echo -e '+\057 MAKE UPDATE FAILED'; false;
160       fi;
161       git diff --exit-code
162     - if [ -n "$CHECKDOCS" ]; then
163           if $make doc-nits; then
164               echo -e '+\057\057 MAKE DOC-NITS OK';
165           else
166               echo -e '+\057\057 MAKE DOC-NITS FAILED'; false;
167           fi;
168       fi
169     - if $make ; then
170           echo -e '+\057\057\057 MAKE OK';
171       else
172           echo -e '+\057\057\057 MAKE FAILED'; false;
173       fi;
174     - if [ -z "$BUILDONLY" ]; then
175           if [ -n "$CROSS_COMPILE" ]; then
176               sudo apt-get -yq install wine;
177               export EXE_SHELL="wine" WINEPREFIX=`pwd`;
178           fi;
179           HARNESS_VERBOSE=yes make test;
180       else
181           if $make build_tests; then
182               echo -e '+\057\057\075 MAKE BUILD_TESTS OK';
183           else
184               echo -e '+\057\057\075 MAKE BUILD_TESTS FAILEd'; false;
185           fi;
186       fi
187     - if [ -n "$DESTDIR" ]; then
188           mkdir "../$DESTDIR";
189           if $make install install_docs DESTDIR="../$DESTDIR"; then
190               echo -e '+\057\057\057\057\057 MAKE INSTALL_DOCS OK';
191           else
192               echo -e '+\057\057\057\057\057 MAKE INSTALL_DOCS FAILED'; false;
193           fi;
194       fi
195     - cd $top
196
197 after_success:
198     - if [ -n "$COVERALLS" ]; then
199           coveralls -b . --gcov-options '\-lp';
200       fi;
201
202 notifications:
203     email:
204         secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4="