Skip to content
Snippets Groups Projects
.travis.yml 2.07 KiB
Newer Older
Konstantinos Sideris's avatar
Konstantinos Sideris committed
---

language: cpp
sudo: required
Nicolas Werner's avatar
Nicolas Werner committed
dist: xenial
Konstantinos Sideris's avatar
Konstantinos Sideris committed

services:
  - docker

notifications:
  email: false

Konstantinos Sideris's avatar
Konstantinos Sideris committed
matrix:
  include:
    - os: osx
Nicolas Werner's avatar
Nicolas Werner committed
      osx_image: xcode11.3 # for c++17
Konstantinos Sideris's avatar
Konstantinos Sideris committed
      compiler: clang
Nicolas Werner's avatar
Nicolas Werner committed
      addons:
        homebrew:
          packages:
            - clang-format
            - ninja
    - os: linux
      compiler: gcc
      env:
        - CXX_VERSION=g++-8
        - CC_VERSION=gcc-8
Nicolas Werner's avatar
Nicolas Werner committed
        - CMAKE_GENERATOR=Ninja
        - COVERAGE=ON
Nicolas Werner's avatar
Nicolas Werner committed
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - software-properties-common
            - curl
            - ninja-build
            - pkg-config
            - make
            - g++-8
            - unzip
            - git
            - libssl-dev
            - openssl
Konstantinos Sideris's avatar
Konstantinos Sideris committed
    - os: linux
      compiler: clang
      env:
        - CXX_VERSION=clang++-6.0
        - CC_VERSION=clang-6.0
Nicolas Werner's avatar
Nicolas Werner committed
        - CMAKE_GENERATOR=Ninja
Nicolas Werner's avatar
Nicolas Werner committed
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-xenial-6.0
            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main'
              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
          packages:
            - clang++-6.0
            - clang-6.0
            - software-properties-common
            - curl
            - ninja-build
            - pkg-config
            - make
            - g++-8
            - unzip
            - git
            - libssl-dev
            - openssl
cache:
  directories:
    - .deps
    - build/_deps
install: ./.ci/install.sh
Konstantinos Sideris's avatar
Konstantinos Sideris committed

script:
  - $CXX --version
  - cmake --version

  # Start the synapse server to run the tests.
  - if [ $TRAVIS_OS_NAME == linux ]; then make synapse; fi

  # Build the lib and run the linter & tests.
  - ./.ci/script.sh

after_success:
  # Generate coverage report and upload report to CodeCov.
    if [ "$COVERAGE" == ON ]; then
      ./.ci/coverage.sh && \
      bash <(curl -s https://codecov.io/bash) -f build/coverage.info || echo "Codecov failed"