|
| 1 | +dist: xenial |
| 2 | +language: cpp |
| 3 | +os: |
| 4 | + - linux |
| 5 | + - osx |
| 6 | +compiler: |
| 7 | + - clang |
| 8 | + - gcc |
| 9 | +osx_image: xcode8.3 |
| 10 | +jdk: |
| 11 | + - openjdk7 |
| 12 | +cache: |
| 13 | + - ccache |
| 14 | + - apt |
| 15 | + |
| 16 | +addons: |
| 17 | + apt: |
| 18 | + sources: |
| 19 | + - ubuntu-toolchain-r-test |
| 20 | + packages: |
| 21 | + - curl |
| 22 | + - g++-8 |
| 23 | + - libbz2-dev |
| 24 | + - libgflags-dev |
| 25 | + - libsnappy-dev |
| 26 | + - mingw-w64 |
| 27 | + - zlib1g-dev |
| 28 | +env: |
| 29 | + - TEST_GROUP=platform_dependent # 16-18 minutes |
| 30 | + - TEST_GROUP=1 # 33-35 minutes |
| 31 | + - TEST_GROUP=2 # 18-20 minutes |
| 32 | + - TEST_GROUP=3 # 20-22 minutes |
| 33 | + - TEST_GROUP=4 # 12-14 minutes |
| 34 | + # Run java tests |
| 35 | + - JOB_NAME=java_test # 4-11 minutes |
| 36 | + # Build ROCKSDB_LITE |
| 37 | + - JOB_NAME=lite_build # 3-4 minutes |
| 38 | + # Build examples |
| 39 | + - JOB_NAME=examples # 5-7 minutes |
| 40 | + - JOB_NAME=cmake # 3-5 minutes |
| 41 | + - JOB_NAME=cmake-gcc8 # 3-5 minutes |
| 42 | + - JOB_NAME=cmake-mingw # 3 minutes |
| 43 | + |
| 44 | +matrix: |
| 45 | + exclude: |
| 46 | + - os: osx |
| 47 | + env: TEST_GROUP=1 |
| 48 | + - os: osx |
| 49 | + env: TEST_GROUP=2 |
| 50 | + - os: osx |
| 51 | + env: TEST_GROUP=3 |
| 52 | + - os: osx |
| 53 | + env: TEST_GROUP=4 |
| 54 | + - os: osx |
| 55 | + env: JOB_NAME=cmake-gcc8 |
| 56 | + - os : osx |
| 57 | + env: JOB_NAME=cmake-mingw |
| 58 | + - os : linux |
| 59 | + compiler: clang |
| 60 | + - os : osx |
| 61 | + compiler: gcc |
| 62 | + |
| 63 | +# https://docs.travis-ci.com/user/caching/#ccache-cache |
| 64 | +install: |
| 65 | + - if [ "${TRAVIS_OS_NAME}" == osx ]; then |
| 66 | + brew install ccache zstd lz4 snappy xz; |
| 67 | + PATH=$PATH:/usr/local/opt/ccache/libexec; |
| 68 | + fi |
| 69 | + - if [ "${JOB_NAME}" == cmake-gcc8 ]; then |
| 70 | + CC=gcc-8 && CXX=g++-8; |
| 71 | + fi |
| 72 | + - if [[ "${JOB_NAME}" == cmake* ]] && [ "${TRAVIS_OS_NAME}" == linux ]; then |
| 73 | + mkdir cmake-dist && curl -sfSL https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5-Linux-x86_64.tar.gz | tar --strip-components=1 -C cmake-dist -xz && export PATH=$PWD/cmake-dist/bin:$PATH; |
| 74 | + fi |
| 75 | + - if [[ "${JOB_NAME}" == java_test ]]; then |
| 76 | + java -version && echo "JAVA_HOME=${JAVA_HOME}"; |
| 77 | + fi |
| 78 | + |
| 79 | +before_script: |
| 80 | + # Increase the maximum number of open file descriptors, since some tests use |
| 81 | + # more FDs than the default limit. |
| 82 | + - ulimit -n 8192 |
| 83 | + |
| 84 | +script: |
| 85 | + - ${CXX} --version |
| 86 | + - if [ `command -v ccache` ]; then ccache -C; fi |
| 87 | + - case $TEST_GROUP in |
| 88 | + platform_dependent) |
| 89 | + OPT=-DTRAVIS V=1 ROCKSDBTESTS_END=db_block_cache_test make -j4 all_but_some_tests check_some |
| 90 | + ;; |
| 91 | + 1) |
| 92 | + OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=db_block_cache_test ROCKSDBTESTS_END=full_filter_block_test make -j4 check_some |
| 93 | + ;; |
| 94 | + 2) |
| 95 | + OPT=-DTRAVIS V=1 make -j4 tools && OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=full_filter_block_test ROCKSDBTESTS_END=write_batch_with_index_test make -j4 check_some |
| 96 | + ;; |
| 97 | + 3) |
| 98 | + OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=write_batch_with_index_test ROCKSDBTESTS_END=write_prepared_transaction_test make -j4 check_some |
| 99 | + ;; |
| 100 | + 4) |
| 101 | + OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=write_prepared_transaction_test make -j4 check_some |
| 102 | + ;; |
| 103 | + esac |
| 104 | + - case $JOB_NAME in |
| 105 | + java_test) |
| 106 | + OPT=-DTRAVIS V=1 make rocksdbjava jtest |
| 107 | + ;; |
| 108 | + lite_build) |
| 109 | + OPT='-DTRAVIS -DROCKSDB_LITE' V=1 make -j4 static_lib tools |
| 110 | + ;; |
| 111 | + examples) |
| 112 | + OPT=-DTRAVIS V=1 make -j4 static_lib && cd examples && make -j4 |
| 113 | + ;; |
| 114 | + cmake-mingw) |
| 115 | + sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; |
| 116 | + mkdir build && cd build && cmake -DJNI=1 .. -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_SYSTEM_NAME=Windows && make -j4 rocksdb rocksdbjni |
| 117 | + ;; |
| 118 | + cmake*) |
| 119 | + mkdir build && cd build && cmake -DJNI=1 .. -DCMAKE_BUILD_TYPE=Release && make -j4 rocksdb rocksdbjni |
| 120 | + ;; |
| 121 | + esac |
| 122 | +notifications: |
| 123 | + email: |
| 124 | + - leveldb@fb.com |
| 125 | + webhooks: |
| 126 | + - https://buildtimetrend.herokuapp.com/travis |
0 commit comments