blob: 4affefd5f04246b0fc74cf8aedf838da9c52906a [file] [log] [blame]
Emilia Kasper703324a2017-03-14 16:40:34 +01001dist: trusty
2sudo: required
3
Andy Polyakov46cc9f32018-04-22 21:14:15 +02004osx_image: xcode9.3
5
Alessandro Ghedini66c103b2015-08-20 00:12:29 +02006language: c
Richard Levittebd5fbfe2016-03-07 00:33:35 +01007cache: ccache
Andy Polyakov22df22e2017-03-13 12:13:07 +01008git:
9 submodules: false
Alessandro Ghedini66c103b2015-08-20 00:12:29 +020010
Emilia Kasperad0a0a32016-08-03 15:29:21 +020011before_install:
Andy Polyakovb3943602016-10-10 12:22:10 +020012 - if [ -n "$COVERALLS" ]; then
13 pip install --user cpp-coveralls;
14 fi;
Andy Polyakov22df22e2017-03-13 12:13:07 +010015 - if expr "$CONFIG_OPTS" ":" ".*enable-external-tests" > /dev/null; then
16 git submodule update --init --recursive;
17 fi;
Emilia Kasperad0a0a32016-08-03 15:29:21 +020018
Alessandro Ghedini66c103b2015-08-20 00:12:29 +020019os:
Rich Salzdb9defd2015-09-21 19:54:36 -040020 - linux
Richard Levittea6da6b72018-02-09 09:12:47 +010021 - osx
Alessandro Ghedini66c103b2015-08-20 00:12:29 +020022
23compiler:
Rich Salzdb9defd2015-09-21 19:54:36 -040024 - clang
25 - gcc
Alessandro Ghedini66c103b2015-08-20 00:12:29 +020026
27env:
Richard Levitte5d322032018-03-28 10:38:56 +020028 - CONFIG_OPTS="" DESTDIR="_install"
29 - CONFIG_OPTS="no-asm -Werror --debug no-afalgeng no-shared enable-crypto-mdebug enable-rc5 enable-md2"
Richard Levitte6197bc72018-04-11 15:49:19 +020030 - CONFIG_OPTS="no-asm no-makedepend --strict-warnings" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes"
Rich Salzdb9defd2015-09-21 19:54:36 -040031
32matrix:
Alessandro Ghedinif3867422015-10-12 16:15:43 -040033 include:
Andy Polyakov41b77d52018-05-07 21:56:04 +020034 - os: linux-ppc64le
35 sudo: false
36 compiler: clang
37 env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES"
Alessandro Ghedinif3867422015-10-12 16:15:43 -040038 - os: linux
Andy Polyakov31c1db92017-01-26 01:02:43 +010039 addons:
40 apt:
41 packages:
Andy Polyakovb169c0e2017-02-06 11:14:05 +010042 - gcc-5
43 - g++-5
44 sources:
45 - ubuntu-toolchain-r-test
46 compiler: gcc-5
Richard Levitte5d322032018-03-28 10:38:56 +020047 env: CONFIG_OPTS="--strict-warnings" COMMENT="Move to the BORINGTEST build when interoperable"
Andy Polyakovb169c0e2017-02-06 11:14:05 +010048 - os: linux
Andy Polyakov9a966262018-05-06 18:30:59 +020049 compiler: clang
50 env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES no-deprecated" BUILDONLY="yes"
Richard Levitte7b195432016-11-03 16:46:14 +010051 - os: linux
Andy Polyakov31c1db92017-01-26 01:02:43 +010052 addons:
53 apt:
54 packages:
Andy Polyakov31c1db92017-01-26 01:02:43 +010055 - binutils-mingw-w64
56 - gcc-mingw-w64
Emilia Kasper56cd71b2016-03-07 12:59:40 +010057 compiler: i686-w64-mingw32-gcc
Andy Polyakovb3943602016-10-10 12:22:10 +020058 env: CONFIG_OPTS="no-stdio" BUILDONLY="yes"
Andy Polyakov41b77d52018-05-07 21:56:04 +020059 # Uncomment if there is reason to believe that PPC-specific problem
60 # can be diagnosed with this possibly >30 mins sanitizer build...
61 #- os: linux-ppc64le
62 # sudo: false
63 # compiler: gcc
64 # env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-ubsan no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES"
Emilia Kasper56cd71b2016-03-07 12:59:40 +010065 - os: linux
Andy Polyakov31c1db92017-01-26 01:02:43 +010066 addons:
67 apt:
68 packages:
Andy Polyakovb169c0e2017-02-06 11:14:05 +010069 - gcc-5
70 - g++-5
Andy Polyakov9a966262018-05-06 18:30:59 +020071 - golang-1.6
Andy Polyakovb169c0e2017-02-06 11:14:05 +010072 sources:
73 - ubuntu-toolchain-r-test
74 compiler: gcc-5
Paulia93ccf92017-12-18 07:42:19 +100075 env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug --coverage no-asm enable-rc5 enable-md2 enable-ec_nistp_64_gcc_128 enable-ssl3 enable-ssl3-method enable-nextprotoneg enable-weak-ssl-ciphers no-shared -DPEDANTIC -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" COVERALLS="yes" BORINGSSL_TESTS="yes" CXX="g++-5"
Richard Levittecd838c62017-03-21 15:57:03 +010076 - os: linux
77 addons:
78 apt:
79 packages:
80 - gcc-5
81 - g++-5
Andy Polyakov9a966262018-05-06 18:30:59 +020082 - golang-1.6
Richard Levittecd838c62017-03-21 15:57:03 +010083 sources:
84 - ubuntu-toolchain-r-test
85 compiler: gcc-5
86 env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers enable-external-tests" BORINGSSL_TESTS="yes" CXX="g++-5" TESTS=95
Andy Polyakovb169c0e2017-02-06 11:14:05 +010087 - os: linux
Andy Polyakov9a966262018-05-06 18:30:59 +020088 compiler: clang
89 env: EXTENDED_TEST="yes" CONFIG_OPTS="enable-msan -D__NO_STRING_INLINES -Wno-unused-command-line-argument"
Andy Polyakovb169c0e2017-02-06 11:14:05 +010090 - os: linux
Andy Polyakov9a966262018-05-06 18:30:59 +020091 compiler: clang
92 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method enable-nextprotoneg no-shared -fno-sanitize=alignment -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument"
Andy Polyakovb169c0e2017-02-06 11:14:05 +010093 - os: linux
Andy Polyakov9a966262018-05-06 18:30:59 +020094 compiler: clang
95 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2 no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument"
Andy Polyakova602dec2018-05-06 18:36:09 +020096 #- os: linux
97 # addons:
98 # apt:
99 # packages:
100 # - gcc-5
101 # - g++-5
102 # sources:
103 # - ubuntu-toolchain-r-test
104 # compiler: gcc-5
105 # env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC" OPENSSL_TEST_RAND_ORDER=0
Richard Levitteb4aaf192016-08-05 00:48:44 +0200106 - os: linux
Andy Polyakov31c1db92017-01-26 01:02:43 +0100107 addons:
108 apt:
109 packages:
110 - binutils-mingw-w64
111 - gcc-mingw-w64
Andy Polyakovb169c0e2017-02-06 11:14:05 +0100112 compiler: i686-w64-mingw32-gcc
Richard Levitte5d322032018-03-28 10:38:56 +0200113 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic"
Andy Polyakovb169c0e2017-02-06 11:14:05 +0100114 - os: linux
115 addons:
116 apt:
117 packages:
118 - binutils-mingw-w64
119 - gcc-mingw-w64
Richard Levitteb4aaf192016-08-05 00:48:44 +0200120 compiler: x86_64-w64-mingw32-gcc
Richard Levitte5d322032018-03-28 10:38:56 +0200121 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic"
Rich Salzdb9defd2015-09-21 19:54:36 -0400122 exclude:
Emilia Kasper210efa82016-03-07 15:15:20 +0100123 - os: linux
124 compiler: clang
Alessandro Ghedini6220acf2015-10-06 20:27:50 +0200125 - os: osx
Andy Polyakovdbf9a332016-02-12 11:45:44 +0100126 compiler: gcc
Rich Salzdb9defd2015-09-21 19:54:36 -0400127
128before_script:
Andy Polyakovb169c0e2017-02-06 11:14:05 +0100129 - env
Richard Levitte2da3f962017-04-12 18:57:02 +0200130 - if [ "$TRAVIS_PULL_REQUEST" != "false" -a -n "$EXTENDED_TEST" ]; then
Andy Polyakovb169c0e2017-02-06 11:14:05 +0100131 (git log -1 $TRAVIS_COMMIT_RANGE | grep '\[extended tests\]' > /dev/null) || exit 0;
132 fi
Richard Levitte262ee9a2016-08-04 11:50:39 +0200133 - if [ -n "$DESTDIR" ]; then
134 sh .travis-create-release.sh $TRAVIS_OS_NAME;
Michael Richardson9967a9e2018-03-06 14:18:43 -0500135 tar -xzf _srcdist.tar.gz;
Richard Levitte262ee9a2016-08-04 11:50:39 +0200136 mkdir _build;
137 cd _build;
138 srcdir=../_srcdist;
139 top=..;
140 else
141 srcdir=.;
142 top=.;
143 fi
Michael Richardson9967a9e2018-03-06 14:18:43 -0500144 - if [ "$CC" = i686-w64-mingw32-gcc ]; then
Rich Salzdb9defd2015-09-21 19:54:36 -0400145 export CROSS_COMPILE=${CC%%gcc}; unset CC;
Richard Levitte262ee9a2016-08-04 11:50:39 +0200146 $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format;
Michael Richardson9967a9e2018-03-06 14:18:43 -0500147 elif [ "$CC" = x86_64-w64-mingw32-gcc ]; then
Rich Salzdb9defd2015-09-21 19:54:36 -0400148 export CROSS_COMPILE=${CC%%gcc}; unset CC;
Richard Levitte262ee9a2016-08-04 11:50:39 +0200149 $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format;
Rich Salzdb9defd2015-09-21 19:54:36 -0400150 else
Michael Richardson9967a9e2018-03-06 14:18:43 -0500151 if [ "$CC" = clang-3.9 ]; then
Matt Caswell404c76f2017-06-23 13:58:49 +0100152 sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang;
153 curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add -;
154 echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee -a /etc/apt/sources.list > /dev/null;
155 sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test";
156 sudo -E apt-get -yq update;
157 sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9;
158 elif which ccache >/dev/null; then
Richard Levittea70ca742016-03-10 02:14:55 +0100159 CC="ccache $CC";
Richard Levitte8cffddc2016-03-10 08:36:57 +0100160 fi;
Richard Levitteffb261f2016-08-15 18:46:39 +0200161 $srcdir/config -v $CONFIG_OPTS;
Rich Salzdb9defd2015-09-21 19:54:36 -0400162 fi
Richard Levitte2da01302018-01-29 18:22:33 +0100163 - ./configdata.pm --dump
Richard Levitte262ee9a2016-08-04 11:50:39 +0200164 - cd $top
Alessandro Ghedini66c103b2015-08-20 00:12:29 +0200165
166script:
Richard Levittea4ffbbe2016-08-15 18:45:22 +0200167 - if [ -z "$BUILDONLY" ]; then
168 make="make -s";
169 else
170 make="make";
171 fi
Richard Levitte6197bc72018-04-11 15:49:19 +0200172 - if [ -n "$GENERATE" ]; then
173 make2="$make PERL=no-perl";
174 else
175 make2="$make";
176 fi
Emilia Kasperab29eca2016-11-09 17:25:35 +0100177 - top=${PWD}
Richard Levitte262ee9a2016-08-04 11:50:39 +0200178 - if [ -n "$DESTDIR" ]; then
179 cd _build;
Richard Levitte262ee9a2016-08-04 11:50:39 +0200180 fi
Rich Salzd8ebcf52017-07-03 13:33:58 -0400181 - if $make update; then
182 echo -e '+\057 MAKE UPDATE OK';
183 else
184 echo -e '+\057 MAKE UPDATE FAILED'; false;
185 fi;
Richard Levitted7948762017-11-02 23:50:48 +0100186 git diff --exit-code
Richard Levitte29ee1be2017-01-09 22:41:26 -0500187 - if [ -n "$CHECKDOCS" ]; then
Rich Salzd8ebcf52017-07-03 13:33:58 -0400188 if $make doc-nits; then
189 echo -e '+\057\057 MAKE DOC-NITS OK';
190 else
191 echo -e '+\057\057 MAKE DOC-NITS FAILED'; false;
192 fi;
Richard Levitte29ee1be2017-01-09 22:41:26 -0500193 fi
Richard Levitte6197bc72018-04-11 15:49:19 +0200194 - if [ -n "$GENERATE" ]; then
195 if $make build_all_generated; then
196 echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED OK';
197 else
198 echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED FAILED'; false;
199 fi;
200 fi
201 - if $make2; then
202 echo -e '+\057\057\057\057 MAKE OK';
Rich Salzd8ebcf52017-07-03 13:33:58 -0400203 else
Richard Levitte6197bc72018-04-11 15:49:19 +0200204 echo -e '+\057\057\057\057 MAKE FAILED'; false;
Rich Salzd8ebcf52017-07-03 13:33:58 -0400205 fi;
Emilia Kasperb63447c2016-03-06 22:31:18 +0100206 - if [ -z "$BUILDONLY" ]; then
Emilia Kasper56cd71b2016-03-07 12:59:40 +0100207 if [ -n "$CROSS_COMPILE" ]; then
Emilia Kasper703324a2017-03-14 16:40:34 +0100208 sudo dpkg --add-architecture i386;
209 sudo apt-get update;
Andy Polyakovb169c0e2017-02-06 11:14:05 +0100210 sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine;
Emilia Kasper56cd71b2016-03-07 12:59:40 +0100211 export EXE_SHELL="wine" WINEPREFIX=`pwd`;
212 fi;
Robbie Harwood0fef7442017-04-05 12:54:41 -0400213 if [ -e krb5/src ]; then
214 sudo apt-get -yq install bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh;
215 fi;
Rich Salzd8ebcf52017-07-03 13:33:58 -0400216 if HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test; then
Richard Levitte6197bc72018-04-11 15:49:19 +0200217 echo -e '+\057\057\057\057\057 MAKE TEST OK';
Rich Salzd8ebcf52017-07-03 13:33:58 -0400218 else
Richard Levitte6197bc72018-04-11 15:49:19 +0200219 echo -e '+\057\057\057\057\057 MAKE TEST FAILED'; false;
Rich Salzd8ebcf52017-07-03 13:33:58 -0400220 fi;
Emilia Kasperd7a275e2016-03-14 12:47:47 +0100221 else
Michael Richardson9967a9e2018-03-06 14:18:43 -0500222 if $make build_tests >~/build.log 2>&1; then
Richard Levitte6197bc72018-04-11 15:49:19 +0200223 echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS OK';
Rich Salzd8ebcf52017-07-03 13:33:58 -0400224 else
Richard Levitte6197bc72018-04-11 15:49:19 +0200225 echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS FAILED';
Michael Richardson9967a9e2018-03-06 14:18:43 -0500226 cat ~/build.log
227 false;
Rich Salzd8ebcf52017-07-03 13:33:58 -0400228 fi;
Rich Salz1a3ae782015-10-16 11:19:04 -0400229 fi
Richard Levitted227a302016-03-29 17:50:53 +0200230 - if [ -n "$DESTDIR" ]; then
Emilia Kasperab29eca2016-11-09 17:25:35 +0100231 mkdir "$top/$DESTDIR";
Richard Levitte986caf92018-05-14 09:28:52 +0200232 if $make install DESTDIR="$top/$DESTDIR" >~/install.log 2>&1 ; then
Richard Levitte6197bc72018-04-11 15:49:19 +0200233 echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL OK';
Rich Salzd8ebcf52017-07-03 13:33:58 -0400234 else
Richard Levitte6197bc72018-04-11 15:49:19 +0200235 echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL FAILED';
Michael Richardson9967a9e2018-03-06 14:18:43 -0500236 cat ~/install.log;
237 false;
Rich Salzd8ebcf52017-07-03 13:33:58 -0400238 fi;
Richard Levitted227a302016-03-29 17:50:53 +0200239 fi
Richard Levitte262ee9a2016-08-04 11:50:39 +0200240 - cd $top
Alessandro Ghedini66c103b2015-08-20 00:12:29 +0200241
Emilia Kasperad0a0a32016-08-03 15:29:21 +0200242after_success:
243 - if [ -n "$COVERALLS" ]; then
Richard Levitte21c21542017-09-30 19:39:39 +0200244 coveralls -b . --gcov gcov-5 --gcov-options '\-lpbc';
Emilia Kasperad0a0a32016-08-03 15:29:21 +0200245 fi;
246
Alessandro Ghedini66c103b2015-08-20 00:12:29 +0200247notifications:
Rich Salzdb9defd2015-09-21 19:54:36 -0400248 email:
Richard Levitte5e28b1c2016-11-02 00:09:03 +0100249 secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4="