#***************************************************************************
#                                  _   _ ____  _
#  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.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
            - 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: 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
          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

# 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
