language: c sudo: required cache: directories: - $HOME/wolfssl-4.0.0-stable - $HOME/mesalink-1.0.0 - $HOME/nghttp2-1.39.2 env: global: - LD_LIBRARY_PATH=/usr/local/lib addons: apt: config: retries: true sources: &common_sources - ubuntu-toolchain-r-test packages: &common_packages - cmake - gcc-8 - valgrind - libev-dev - libc-ares-dev - g++-8 - libstdc++-8-dev - stunnel4 - libidn2-0-dev - gnutls-bin matrix: include: - os: linux compiler: gcc dist: trusty env: - T=normal C="--with-gssapi --with-libssh2" CHECKSRC=1 - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - krb5-user - libssh2-1-dev - os: linux compiler: gcc dist: trusty env: - T=normal C=--with-libssh - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libssh-dev - os: linux compiler: gcc dist: trusty env: - T=normal C="--enable-ares" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - os: linux compiler: gcc dist: bionic env: - T=normal C="--disable-verbose" CPPFLAGS="-Wno-variadic-macros" NOTESTS=1 - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux 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 - 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: # Install and use the current stable release of Go - gimme --list - 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 - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux 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= - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux compiler: gcc dist: bionic env: - T=debug-wolfssl C="--with-wolfssl --without-ssl" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux compiler: gcc dist: bionic env: - T=debug-mesalink C="--with-mesalink --without-ssl" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: xenial env: - T=debug - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-xenial-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: xenial env: - T=debug C="--enable-alt-svc" - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-xenial-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: xenial env: - T=debug C="--with-mbedtls --without-ssl" - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-xenial-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - libmbedtls-dev - os: linux compiler: clang dist: bionic env: - T=debug C="--with-gnutls --without-ssl" - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-bionic-7 packages: - *common_packages - clang-7 - libgnutls28-dev - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: bionic env: - T=debug C="--with-nss --without-ssl" NOTESTS=1 CPPFLAGS="-isystem /usr/include/nss" - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-bionic-7 packages: - *common_packages - clang-7 - libnss3-dev - libpsl-dev - libbrotli-dev - os: linux compiler: gcc dist: trusty env: - T=iconv - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" - os: osx compiler: gcc env: T=debug C="--disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets --disable-shared --enable-debug --enable-maintainer-mode --without-brotli --without-gssapi --without-libidn2 --without-libmetalink --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib" - os: osx compiler: gcc env: T=debug C=--enable-ares - os: osx compiler: gcc env: T=debug C="--with-ssl=/usr/local/opt/openssl --with-libmetalink" - os: osx compiler: gcc env: T=debug C="--with-ssl=/usr/local/opt/libressl --with-libmetalink" - os: osx compiler: clang osx_image: xcode10 env: T=debug C="--without-ssl --with-darwinssl --with-libmetalink" - os: osx compiler: clang env: T=normal - os: osx compiler: clang env: T=cmake - os: linux compiler: gcc dist: bionic env: - T=cmake - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: bionic env: - T=cmake - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-bionic-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - os: linux compiler: gcc dist: xenial env: - T=torture - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - lcov - libpsl-dev - libbrotli-dev - libssh2-1-dev - os: linux compiler: gcc dist: bionic env: - T=distcheck - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: bionic env: - T=fuzzer - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-bionic-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: bionic env: - T=tidy - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-bionic-7 packages: - *common_packages - clang-7 - clang-tidy-7 - libpsl-dev - libbrotli-dev - os: linux compiler: clang dist: bionic env: - T=scan-build - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7" addons: apt: sources: - *common_sources - llvm-toolchain-bionic-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - os: linux 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: apt: sources: - *common_sources - llvm-toolchain-xenial-7 packages: - *common_packages - clang-7 - libpsl-dev - libbrotli-dev - os: linux arch: arm64 compiler: gcc dist: bionic env: - T=debug C="--enable-alt-svc" - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8" addons: apt: sources: - *common_sources packages: - *common_packages - libpsl-dev - libbrotli-dev - libev-dev - libssl-dev - libtool - pkg-config - zlib1g-dev before_install: - export "${OVERRIDE_CC-blank=}" - export "${OVERRIDE_CXX-blank=}" install: - if [ "$T" = "coverage" ]; then pip2 install --user cpp-coveralls; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update > /dev/null; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew reinstall libtool > /dev/null; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install rtmpdump libssh2 c-ares libmetalink libressl nghttp2 libmetalink; fi # before_script and script: # Travis isn't reliable catching errors in inline script commands (#3730). # Do not add anything here, instead add to the respective script. before_script: - ./scripts/travis/before_script.sh || travis_terminate 1 script: - ./scripts/travis/script.sh || travis_terminate 1 # whitelist branches to avoid testing feature branches twice (as branch and as pull request) branches: only: - master - /\/ci$/ notifications: email: false