.travis.yml raw

   1  # Build matrix / environment variables are explained on:
   2  # http://about.travis-ci.org/docs/user/build-configuration/
   3  # This file can be validated on: http://lint.travis-ci.org/
   4  
   5  language: cpp
   6  dist: bionic
   7  osx_image: xcode10.3
   8  
   9  compiler:
  10  - gcc
  11  - clang
  12  os:
  13  - linux
  14  - osx
  15  
  16  env:
  17  - BUILD_TYPE=Debug
  18  - BUILD_TYPE=RelWithDebInfo
  19  
  20  addons:
  21    apt:
  22      sources:
  23      - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
  24        key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
  25      - sourceline: 'ppa:ubuntu-toolchain-r/test'
  26      packages:
  27      - clang-9
  28      - cmake
  29      - gcc-9
  30      - g++-9
  31      - libgoogle-perftools-dev
  32      - libkyotocabinet-dev
  33      - libsnappy-dev
  34      - libsqlite3-dev
  35      - ninja-build
  36    homebrew:
  37      packages:
  38      - cmake
  39      - crc32c
  40      - gcc@9
  41      - gperftools
  42      - kyoto-cabinet
  43      - llvm@9
  44      - ninja
  45      - snappy
  46      - sqlite3
  47      update: true
  48  
  49  install:
  50  # The following Homebrew packages aren't linked by default, and need to be
  51  # prepended to the path explicitly.
  52  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
  53      export PATH="$(brew --prefix llvm)/bin:$PATH";
  54    fi
  55  # /usr/bin/gcc points to an older compiler on both Linux and macOS.
  56  - if [ "$CXX" = "g++" ]; then export CXX="g++-9" CC="gcc-9"; fi
  57  # /usr/bin/clang points to an older compiler on both Linux and macOS.
  58  #
  59  # Homebrew's llvm package doesn't ship a versioned clang++ binary, so the values
  60  # below don't work on macOS. Fortunately, the path change above makes the
  61  # default values (clang and clang++) resolve to the correct compiler on macOS.
  62  - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
  63      if [ "$CXX" = "clang++" ]; then export CXX="clang++-9" CC="clang-9"; fi;
  64    fi
  65  - echo ${CC}
  66  - echo ${CXX}
  67  - ${CXX} --version
  68  - cmake --version
  69  
  70  before_script:
  71  - mkdir -p build && cd build
  72  - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE
  73      -DCMAKE_INSTALL_PREFIX=$HOME/.local
  74  - cmake --build .
  75  - cd ..
  76  
  77  script:
  78  - cd build && ctest --verbose && cd ..
  79  - "if [ -f build/db_bench ] ; then build/db_bench ; fi"
  80  - "if [ -f build/db_bench_sqlite3 ] ; then build/db_bench_sqlite3 ; fi"
  81  - "if [ -f build/db_bench_tree_db ] ; then build/db_bench_tree_db ; fi"
  82  - cd build && cmake --build . --target install
  83