travis: Switch to the Ubuntu 18.04 (bionic) image for tests

Do two full build tests on 16.04 (xenial) and the two for OpenSSL 1.0
also run there.  Since 18.04 ships OpenSSL 1.1.1, which conflicts with
our custom built version, we skip that until OpenSSL 3.0 is released.
A workaround is required for an issue with sonarqube on bionic.
This commit is contained in:
Tobias Brunner
2019-10-21 13:58:12 +02:00
parent 768e013790
commit 393e39a1bc
2 changed files with 15 additions and 44 deletions
+8 -1
View File
@@ -1,7 +1,7 @@
language: c language: c
sudo: required sudo: required
dist: xenial dist: bionic
# don't build tags separately # don't build tags separately
if: tag IS blank if: tag IS blank
@@ -50,6 +50,11 @@ matrix:
- env: TEST=all - env: TEST=all
- env: TEST=all - env: TEST=all
compiler: clang compiler: clang
- env: TEST=all
dist: xenial
- env: TEST=all
dist: xenial
compiler: clang
- env: TEST=all MONOLITHIC=yes - env: TEST=all MONOLITHIC=yes
- env: TEST=all MONOLITHIC=yes - env: TEST=all MONOLITHIC=yes
compiler: clang compiler: clang
@@ -86,7 +91,9 @@ matrix:
- env: TEST=openssl - env: TEST=openssl
- env: TEST=openssl LEAK_DETECTIVE=yes - env: TEST=openssl LEAK_DETECTIVE=yes
- env: TEST=openssl-1.0 - env: TEST=openssl-1.0
dist: xenial
- env: TEST=openssl-1.0 LEAK_DETECTIVE=yes - env: TEST=openssl-1.0 LEAK_DETECTIVE=yes
dist: xenial
- env: TEST=gcrypt - env: TEST=gcrypt
- env: TEST=gcrypt LEAK_DETECTIVE=yes - env: TEST=gcrypt LEAK_DETECTIVE=yes
- env: TEST=apidoc - env: TEST=apidoc
+7 -43
View File
@@ -86,43 +86,6 @@ build_tss2()
cd - cd -
} }
build_openssl()
{
SSL_REV=1.1.1d
SSL_PKG=openssl-$SSL_REV
SSL_DIR=$TRAVIS_BUILD_DIR/../$SSL_PKG
SSL_SRC=https://www.openssl.org/source/$SSL_PKG.tar.gz
SSL_INS=/usr/local/ssl
SSL_OPT="shared no-tls no-dtls no-ssl3 no-zlib no-comp no-idea no-psk no-srp
no-stdio no-tests enable-rfc3779 enable-ec_nistp_64_gcc_128
--api=1.1.0"
if test -d "$SSL_DIR"; then
return
fi
echo "$ build_openssl()"
curl -L $SSL_SRC | tar xz -C $TRAVIS_BUILD_DIR/.. &&
cd $SSL_DIR &&
./config --prefix=$SSL_INS --openssldir=$SSL_INS $SSL_OPT &&
make -j4 >/dev/null &&
sudo make install_sw >/dev/null &&
echo $SSL_INS/lib | sudo tee /etc/ld.so.conf.d/openssl-$SSL_REV.conf >/dev/null &&
sudo ldconfig || exit $?
cd -
}
use_custom_openssl()
{
CFLAGS="$CFLAGS -I/usr/local/ssl/include"
LDFLAGS="$LDFLAGS -L/usr/local/ssl/lib"
export LDFLAGS
if test "$1" = "deps"; then
build_openssl
fi
}
if test -z $TRAVIS_BUILD_DIR; then if test -z $TRAVIS_BUILD_DIR; then
TRAVIS_BUILD_DIR=$PWD TRAVIS_BUILD_DIR=$PWD
fi fi
@@ -144,10 +107,6 @@ openssl*)
CONFIG="--disable-defaults --enable-pki --enable-openssl --enable-pem" CONFIG="--disable-defaults --enable-pki --enable-openssl --enable-pem"
export TESTS_PLUGINS="test-vectors pem openssl!" export TESTS_PLUGINS="test-vectors pem openssl!"
DEPS="libssl-dev" DEPS="libssl-dev"
if test "$TEST" != "openssl-1.0"; then
DEPS=""
use_custom_openssl $1
fi
;; ;;
gcrypt) gcrypt)
CONFIG="--disable-defaults --enable-pki --enable-gcrypt --enable-pkcs1" CONFIG="--disable-defaults --enable-pki --enable-gcrypt --enable-pkcs1"
@@ -197,14 +156,13 @@ all|coverage|sonarcloud)
DEPS="$DEPS libcurl4-gnutls-dev libsoup2.4-dev libunbound-dev libldns-dev DEPS="$DEPS libcurl4-gnutls-dev libsoup2.4-dev libunbound-dev libldns-dev
libmysqlclient-dev libsqlite3-dev clearsilver-dev libfcgi-dev libmysqlclient-dev libsqlite3-dev clearsilver-dev libfcgi-dev
libpcsclite-dev libpam0g-dev binutils-dev libunwind8-dev libnm-dev libpcsclite-dev libpam0g-dev binutils-dev libunwind8-dev libnm-dev
libjson0-dev iptables-dev python-pip libtspi-dev libsystemd-dev" libjson-c-dev iptables-dev python-pip libtspi-dev libsystemd-dev"
PYDEPS="pytest" PYDEPS="pytest"
if test "$1" = "deps"; then if test "$1" = "deps"; then
build_botan build_botan
build_wolfssl build_wolfssl
build_tss2 build_tss2
fi fi
use_custom_openssl $1
;; ;;
win*) win*)
CONFIG="--disable-defaults --enable-svc --enable-ikev2 CONFIG="--disable-defaults --enable-svc --enable-ikev2
@@ -374,6 +332,12 @@ esac
echo "$ make $TARGET" echo "$ make $TARGET"
case "$TEST" in case "$TEST" in
sonarcloud) sonarcloud)
# there is an issue with the platform detection that causes sonarqube to
# fail on bionic with "ERROR: ld.so: object '...libinterceptor-${PLATFORM}.so'
# from LD_PRELOAD cannot be preloaded (cannot open shared object file)"
# https://jira.sonarsource.com/browse/CPP-2027
BW_PATH=$(dirname $(which build-wrapper-linux-x86-64))
cp $BW_PATH/libinterceptor-x86_64.so $BW_PATH/libinterceptor-haswell.so
# without target, coverage is currently not supported anyway because # without target, coverage is currently not supported anyway because
# sonarqube only supports gcov, not lcov # sonarqube only supports gcov, not lcov
build-wrapper-linux-x86-64 --out-dir bw-output make -j4 || exit $? build-wrapper-linux-x86-64 --out-dir bw-output make -j4 || exit $?