travis: upgrade to bionic, clang-9, improve readability

Changes, partially to reduce build failures from external dependencies:
 - Upgrade Ubuntu and drop unnecessary third-party repos.
 - Properly clone apt config to ensure retries.
 - Upgrade to clang-9 from the standard repos.
 - Use Ubuntu 20.04 focal for the libssh build, use of ssh_get_publickey
   fails on -Werror=deprecated-declarations in Ubuntu 18.04. Do not use
   focal everywhere yet since Travis CI has not documented this option.
   In focal, python-impacket (Py2.7) has been removed, leaving only
   python3-impacket. Since it is only needed for SMB tests and not SSH,
   skip it for the libssh job since it might need more work.
 - apt: Remove gcc-8 and libstdc++-8-dev, already installed via g++-8.

Non-functional cleanups:
 - Simplify test matrix, drop redundant os and compiler keys.
 - Deprecation fixes: remove sudo, rename matrix -> jobs.
 - Every job has an 'env' key, put this key first in a list item.

Closes #5370
This commit is contained in:
Peter Wu 2020-05-10 12:07:38 +02:00
parent 1753e4140b
commit 2c598cc778
1 changed files with 106 additions and 226 deletions

View File

@ -20,7 +20,8 @@
# #
########################################################################### ###########################################################################
language: c language: c
sudo: required os: linux
dist: bionic
cache: cache:
directories: directories:
- $HOME/wolfssl-4.4.0-stable - $HOME/wolfssl-4.4.0-stable
@ -32,139 +33,98 @@ env:
- LD_LIBRARY_PATH=/usr/local/lib - LD_LIBRARY_PATH=/usr/local/lib
addons: addons:
apt: apt: &common_apt
config: config:
retries: true retries: true
sources: &common_sources
- ubuntu-toolchain-r-test
packages: &common_packages packages: &common_packages
- cmake - cmake
- gcc-8
- valgrind - valgrind
- libev-dev - libev-dev
- libc-ares-dev - libc-ares-dev
- g++-8 - g++-8
- libstdc++-8-dev
- stunnel4 - stunnel4
- libidn2-0-dev - libidn2-dev
- gnutls-bin - gnutls-bin
- python-impacket - python-impacket
matrix: jobs:
include: include:
- os: linux - env:
compiler: gcc
dist: trusty
env:
- T=normal C="--with-gssapi --with-libssh2" CHECKSRC=1 - T=normal C="--with-gssapi --with-libssh2" CHECKSRC=1
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- krb5-user - krb5-user
- libssh2-1-dev - libssh2-1-dev
- os: linux - env:
compiler: gcc
dist: trusty
env:
- T=normal C=--with-libssh - T=normal C=--with-libssh
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" # Avoid bionic, its pre-release libssh version triggers deprecation warnings.
dist: focal
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - cmake
- valgrind
- libev-dev
- libc-ares-dev
- g++-8
- stunnel4
- libidn2-dev
- gnutls-bin
# The above list is common_packages minus impacket.
- libssh-dev - libssh-dev
- os: linux - env:
compiler: gcc
dist: trusty
env:
- T=normal C="--enable-ares" - T=normal C="--enable-ares"
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
- os: linux - env:
compiler: gcc
dist: trusty
env:
- T=normal C="--enable-mqtt" - T=normal C="--enable-mqtt"
- os: linux - env:
compiler: gcc
dist: bionic
env:
- T=normal C="--disable-verbose" CPPFLAGS="-Wno-variadic-macros" NOTESTS=1 - T=normal C="--disable-verbose" CPPFLAGS="-Wno-variadic-macros" NOTESTS=1
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: gcc
dist: bionic
before_install:
# Install and use the current stable release of Go
- gimme --list
- eval "$(gimme stable)"
- gimme --list
env:
- T=novalgrind BORINGSSL=yes C="--with-ssl=$HOME/boringssl" LD_LIBRARY_PATH=/home/travis/boringssl/lib:/usr/local/lib - T=novalgrind BORINGSSL=yes C="--with-ssl=$HOME/boringssl" LD_LIBRARY_PATH=/home/travis/boringssl/lib:/usr/local/lib
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons:
apt:
sources:
- ppa:longsleep/golang-backports
- *common_sources
packages:
- *common_packages
- os: linux
compiler: gcc
dist: bionic
before_install: before_install:
# Install and use the current stable release of Go - eval "$(gimme stable)"; gimme --list # Install latest Go (for boringssl)
- gimme --list - env:
- eval "$(gimme stable)"
- gimme --list
env:
- T=novalgrind BORINGSSL=yes QUICHE="yes" C="--with-ssl=$HOME/boringssl --with-quiche=$HOME/quiche/target/release --enable-alt-svc" LD_LIBRARY_PATH=/home/travis/boringssl/lib:$HOME/quiche/target/release:/usr/local/lib - T=novalgrind BORINGSSL=yes QUICHE="yes" C="--with-ssl=$HOME/boringssl --with-quiche=$HOME/quiche/target/release --enable-alt-svc" LD_LIBRARY_PATH=/home/travis/boringssl/lib:$HOME/quiche/target/release:/usr/local/lib
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
before_install:
- eval "$(gimme stable)"; gimme --list # Install latest Go (for boringssl)
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: gcc
dist: xenial
env:
- T=novalgrind NGTCP2=yes C="--with-ssl=$HOME/ngbuild --with-ngtcp2=$HOME/ngbuild --with-nghttp3=$HOME/ngbuild --enable-alt-svc" NOTESTS= - T=novalgrind NGTCP2=yes C="--with-ssl=$HOME/ngbuild --with-ngtcp2=$HOME/ngbuild --with-nghttp3=$HOME/ngbuild --enable-alt-svc" NOTESTS=
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: gcc
dist: xenial
env:
- T=novalgrind NGTCP2=yes GNUTLS=yes C="PKG_CONFIG_PATH=$HOME/ngbuild --without-ssl --with-gnutls=$HOME/ngbuild --with-ngtcp2=$HOME/ngbuild --with-nghttp3=$HOME/ngbuild --enable-alt-svc" NOTESTS= - T=novalgrind NGTCP2=yes GNUTLS=yes C="PKG_CONFIG_PATH=$HOME/ngbuild --without-ssl --with-gnutls=$HOME/ngbuild --with-ngtcp2=$HOME/ngbuild --with-nghttp3=$HOME/ngbuild --enable-alt-svc" NOTESTS=
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
@ -179,266 +139,186 @@ matrix:
- libp11-kit-dev - libp11-kit-dev
- libtasn1-6-dev - libtasn1-6-dev
- nettle-dev - nettle-dev
- os: linux - env:
compiler: gcc
dist: bionic
env:
- T=debug-wolfssl C="--with-wolfssl --without-ssl" - T=debug-wolfssl C="--with-wolfssl --without-ssl"
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: gcc
dist: bionic
env:
- T=debug-mesalink C="--with-mesalink --without-ssl" - T=debug-mesalink C="--with-mesalink --without-ssl"
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: xenial
env:
- T=debug - T=debug
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - &clang OVERRIDE_CC="CC=clang-9" OVERRIDE_CXX="CXX=clang++-9"
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-xenial-7
packages: packages:
- *common_packages - &clang_packages [*common_packages, clang-9]
- clang-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: xenial
env:
- T=debug C="--enable-alt-svc" - T=debug C="--enable-alt-svc"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-xenial-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: xenial
env:
- T=debug C="--with-mbedtls --without-ssl" - T=debug C="--with-mbedtls --without-ssl"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-xenial-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- libmbedtls-dev - libmbedtls-dev
- os: linux - env:
compiler: clang
dist: bionic
env:
- T=debug C="--with-gnutls --without-ssl" - T=debug C="--with-gnutls --without-ssl"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-bionic-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libgnutls28-dev - libgnutls28-dev
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: bionic
env:
- T=debug C="--with-nss --without-ssl" NOTESTS=1 CPPFLAGS="-isystem /usr/include/nss" - T=debug C="--with-nss --without-ssl" NOTESTS=1 CPPFLAGS="-isystem /usr/include/nss"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-bionic-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libnss3-dev - libnss3-dev
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: gcc
dist: trusty
env:
- T=iconv - T=iconv
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
- os: linux - env:
compiler: gcc
dist: bionic
before_install:
# Install and use the current stable release of Go (for boringssl)
- gimme --list
- eval "$(gimme stable)"
- gimme --list
env:
- T=cmake BORINGSSL=yes QUICHE=yes C="-DUSE_QUICHE=1 -DOPENSSL_ROOT_DIR=$HOME/boringssl" - T=cmake BORINGSSL=yes QUICHE=yes C="-DUSE_QUICHE=1 -DOPENSSL_ROOT_DIR=$HOME/boringssl"
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
- PKG_CONFIG_PATH="$HOME/quiche/target/release" - PKG_CONFIG_PATH="$HOME/quiche/target/release"
before_install:
- eval "$(gimme stable)"; gimme --list # Install latest Go (for boringssl)
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: bionic
env:
- T=cmake NGTCP2=yes C="-DUSE_NGTCP2=ON" - T=cmake NGTCP2=yes C="-DUSE_NGTCP2=ON"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
- PKG_CONFIG_PATH="$HOME/ngbuild/lib/pkgconfig" - PKG_CONFIG_PATH="$HOME/ngbuild/lib/pkgconfig"
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-bionic-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: gcc
dist: xenial
env:
- T=torture - T=torture
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- lcov - lcov
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- libssh2-1-dev - libssh2-1-dev
- os: linux - env:
compiler: gcc
dist: bionic
env:
- T=distcheck - T=distcheck
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: bionic
env:
- T=fuzzer - T=fuzzer
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-bionic-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: bionic
env:
- T=tidy - T=tidy
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
compiler: clang
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-bionic-7
packages: packages:
- *common_packages - *clang_packages
- clang-7 - clang-tidy-9
- clang-tidy-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
compiler: clang
dist: bionic
env:
- T=scan-build - T=scan-build
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" - *clang
addons:
apt:
sources:
- *common_sources
- llvm-toolchain-bionic-7
packages:
- *common_packages
- clang-7
- libpsl-dev
- libbrotli-dev
- os: linux
compiler: clang compiler: clang
dist: xenial
env:
- T=debug CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" LIBS="-ldl -lubsan"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
- llvm-toolchain-xenial-7
packages: packages:
- *common_packages - *clang_packages
- clang-7
- libpsl-dev - libpsl-dev
- libbrotli-dev - libbrotli-dev
- os: linux - env:
arch: arm64 - T=debug CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" LIBS="-ldl -lubsan"
compiler: gcc - *clang
dist: bionic compiler: clang
env: addons:
apt:
<<: *common_apt
packages:
- *clang_packages
- libpsl-dev
- libbrotli-dev
- env:
- T=debug C="--enable-alt-svc" - T=debug C="--enable-alt-svc"
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
arch: arm64
addons: addons:
apt: apt:
sources: <<: *common_apt
- *common_sources
packages: packages:
- *common_packages - *common_packages
- libpsl-dev - libpsl-dev