language: cpp dist: focal os: linux cache: directories: - $HOME/deps compiler: - gcc - clang before_install: - bash install_deps.sh - if [ "$DO_COVERAGE" = "coverage" ]; then pip install --user cpp-coveralls; fi - eval "${MATRIX_EVAL}" before_script: - export PATH=$HOME/deps/cmake-install:$HOME/deps/cmake-install/bin:$HOME/deps/nats-server:$HOME/deps/nats-streaming-server:$PATH - mkdir build && cd build env: - DO_COVERAGE="coverage" BUILD_OPT="-DNATS_COVERAGE=ON -DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Debug -DNATS_BUILD_TLS_USE_OPENSSL_1_1_API=ON" jobs: include: - name: "NATS server - latest release" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - NATS_TEST_SERVER_VERSION=latest - MATRIX_EVAL="CC=gcc-9" - BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release" DO_COVERAGE="no" - name: "NATS server - main" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - NATS_TEST_SERVER_VERSION=main - MATRIX_EVAL="CC=gcc-9" - BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release" DO_COVERAGE="no" - name: "gcc-9 - TLS OFF" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - MATRIX_EVAL="CC=gcc-9" - BUILD_OPT="-DNATS_BUILD_WITH_TLS=OFF -DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release" DO_COVERAGE="no" - name: "gcc-9 - Streaming OFF" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - MATRIX_EVAL="CC=gcc-9" - BUILD_OPT="-DNATS_BUILD_STREAMING=OFF -DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release" DO_COVERAGE="no" CTEST_OPT="-I 1,1" - name: "gcc-9 - Default - sanitize address" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - MATRIX_EVAL="CC=gcc-9" - BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address" NATS_TEST_VALGRIND=yes DO_COVERAGE="no" - name: "gcc-9 - Lib msg delivery - sanitize address" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - MATRIX_EVAL="CC=gcc-9" - NATS_DEFAULT_TO_LIB_MSG_DELIVERY=yes BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address" NATS_TEST_VALGRIND=yes DO_COVERAGE="no" - name: "gcc-9 - Write deadline - sanitize address" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - MATRIX_EVAL="CC=gcc-9" - NATS_DEFAULT_LIB_WRITE_DEADLINE=2000 BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-fsanitize=address" NATS_TEST_VALGRIND=yes DO_COVERAGE="no" - name: "gcc-9 - Default - sanitize thread" compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: ppa:ubuntu-toolchain-r/test packages: - g++-9 env: - MATRIX_EVAL="CC=gcc-9" - BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-fsanitize=thread" NATS_TEST_VALGRIND=yes DO_COVERAGE="no" - name: "clang-8 - TLS OFF" compiler: clang addons: apt: sources: - llvm-toolchain-xenial-8 packages: - clang-8 env: - MATRIX_EVAL="CC=clang-8" # Run only one test, this matrix is just to make sure that we compile ok. - BUILD_OPT="-DNATS_BUILD_WITH_TLS=OFF -DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release" DO_COVERAGE="no" CTEST_OPT="-I 1,1" - name: "clang-8 - Default - sanitize address" compiler: clang addons: apt: sources: - llvm-toolchain-xenial-8 packages: - clang-8 env: - MATRIX_EVAL="CC=clang-8" - BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-fsanitize=address" NATS_TEST_VALGRIND=yes DO_COVERAGE="no" - name: "clang-8 - Default - sanitize thread" compiler: clang addons: apt: sources: - llvm-toolchain-xenial-8 packages: - clang-8 env: - MATRIX_EVAL="CC=clang-8" - BUILD_OPT="-DNATS_BUILD_ARCH=64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-fsanitize=thread" NATS_TEST_VALGRIND=yes DO_COVERAGE="no" script: - $TRAVIS_BUILD_DIR/buildOnTravis.sh "$CC" "$DO_COVERAGE" "$BUILD_OPT -DNATS_SANITIZE=ON -DNATS_BUILD_TLS_USE_OPENSSL_1_1_API=ON -DNATS_PROTOBUF_DIR=$HOME/deps/pbuf -DNATS_BUILD_USE_SODIUM=ON -DNATS_SODIUM_DIR=$HOME/deps/sodium" "$CTEST_OPT" after_success: - cd .. - if [[ "$DO_COVERAGE" == "coverage" && "$TRAVIS_COMPILER" == "gcc" ]]; then coveralls --gcov-options '\-lp' -r . -i "src/" -e "src/win/" -e "src/unix/" -e "src/stan/protocol.pb-c.c" -E ".*\.h$"; fi notifications: email: false