curl/.travis.yml
Peter Wu ac26be86f3
travis: Add ngtcp2 and quiche tests for CMake
To avoid an explosion of jobs, extend the existing CMake tests with
ngtcp2 and quiche support. macOS was previously moved to GitHub actions,
so the non-Linux case can be dropped.
2020-05-10 23:36:54 +02:00

475 lines
16 KiB
YAML

#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.haxx.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
###########################################################################
language: c
sudo: required
cache:
directories:
- $HOME/wolfssl-4.4.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
- python-impacket
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: trusty
env:
- T=normal C="--enable-mqtt"
- 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: 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=
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
addons:
apt:
sources:
- *common_sources
packages:
- *common_packages
- libpsl-dev
- libbrotli-dev
- autogen
- automake
- autopoint
- bison
- gperf
- libgmp-dev
- libopts25-dev
- libp11-kit-dev
- libtasn1-6-dev
- nettle-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: linux
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"
- OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
- PKG_CONFIG_PATH="$HOME/quiche/target/release"
addons:
apt:
sources:
- *common_sources
packages:
- *common_packages
- libpsl-dev
- libbrotli-dev
- os: linux
compiler: clang
dist: bionic
env:
- T=cmake NGTCP2=yes C="-DUSE_NGTCP2=ON"
- OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
- PKG_CONFIG_PATH="$HOME/ngbuild/lib/pkgconfig"
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
# 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