.travis.yml 3.8 KB

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