| # Build matrix / environment variable are explained on: |
| # http://about.travis-ci.org/docs/user/build-configuration/ |
| # This file can be validated on: http://lint.travis-ci.org/ |
| |
| sudo: false |
| dist: trusty |
| language: cpp |
| |
| compiler: |
| - gcc |
| - clang |
| os: |
| - linux |
| - osx |
| |
| env: |
| - BUILD_TYPE=Debug |
| - BUILD_TYPE=RelWithDebInfo |
| |
| addons: |
| apt: |
| # List of whitelisted in travis packages for ubuntu-trusty can be found here: |
| # https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-trusty |
| # List of whitelisted in travis apt-sources: |
| # https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json |
| sources: |
| - ubuntu-toolchain-r-test |
| - llvm-toolchain-trusty-5.0 |
| packages: |
| - cmake |
| - gcc-7 |
| - g++-7 |
| - clang-5.0 |
| - libgoogle-perftools-dev |
| - libkyotocabinet-dev |
| - libsnappy-dev |
| - libsqlite3-dev |
| |
| install: |
| # Travis doesn't have a DSL for installing homebrew packages yet. Status tracked |
| # in https://github.com/travis-ci/travis-ci/issues/5377 |
| # The Travis VM image for Mac already has a link at /usr/local/include/c++, |
| # causing Homebrew's gcc@7 installation to error out. This was reported to |
| # Homebrew maintainers at https://github.com/Homebrew/brew/issues/1742 and |
| # removing the link emerged as a workaround. |
| - if [ "$TRAVIS_OS_NAME" == "osx" ]; then |
| brew update; |
| if [ -L /usr/local/include/c++ ]; then rm /usr/local/include/c++; fi; |
| brew install gcc@7; |
| brew install crc32c gperftools kyoto-cabinet snappy sqlite3; |
| fi |
| # /usr/bin/gcc is stuck to old versions on both Linux and OSX. |
| - if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi |
| - echo ${CC} |
| - echo ${CXX} |
| - ${CXX} --version |
| - cmake --version |
| |
| before_script: |
| - mkdir -p build && cd build |
| - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE |
| - cmake --build . |
| - cd .. |
| |
| script: |
| - cd build ; ctest --verbose ; cd .. |
| - "if [ -f build/db_bench ] ; then build/db_bench ; fi" |
| - "if [ -f build/db_bench_sqlite3 ] ; then build/db_bench_sqlite3 ; fi" |
| - "if [ -f build/db_bench_tree_db ] ; then build/db_bench_tree_db ; fi" |