dist: xenial language: cpp os: - linux arch: - arm64 - ppc64le - s390x compiler: - clang - gcc cache: - ccache addons: apt: update: true sources: - ubuntu-toolchain-r-test packages: - libgflags-dev - libbz2-dev - liblz4-dev - libsnappy-dev - liblzma-dev # xv - libzstd-dev - zlib1g-dev env: - TEST_GROUP=platform_dependent # 16-18 minutes - TEST_GROUP=1 # 33-35 minutes - TEST_GROUP=2 # 18-20 minutes - TEST_GROUP=3 # 20-22 minutes - TEST_GROUP=4 # 12-14 minutes # Run java tests - JOB_NAME=java_test # 4-11 minutes # Build ROCKSDB_LITE - JOB_NAME=lite_build # 3-4 minutes # Build examples - JOB_NAME=examples # 5-7 minutes - JOB_NAME=cmake # 3-5 minutes - JOB_NAME=cmake-gcc8 # 3-5 minutes - JOB_NAME=cmake-gcc9 # 3-5 minutes - JOB_NAME=cmake-gcc9-c++20 # 3-5 minutes - JOB_NAME=cmake-mingw # 3 minutes - JOB_NAME=make-gcc4.8 - JOB_NAME=status_checked matrix: exclude: - os : linux arch: arm64 env: JOB_NAME=cmake-mingw - os : linux arch: arm64 env: JOB_NAME=make-gcc4.8 - os: linux arch: ppc64le env: JOB_NAME=cmake-mingw - os: linux arch: ppc64le env: JOB_NAME=make-gcc4.8 - os: linux arch: s390x env: JOB_NAME=cmake-mingw - os: linux arch: s390x env: JOB_NAME=make-gcc4.8 - os: linux compiler: clang - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: arm64 env: TEST_GROUP=platform_dependent - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: TEST_GROUP=1 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: TEST_GROUP=1 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: TEST_GROUP=1 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: TEST_GROUP=2 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: TEST_GROUP=2 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: TEST_GROUP=2 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: TEST_GROUP=3 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: TEST_GROUP=3 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: TEST_GROUP=3 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: TEST_GROUP=4 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: TEST_GROUP=4 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: TEST_GROUP=4 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=cmake - if: type = pull_request AND commit_message !~ /FULL_CI/ AND commit_message !~ /java/ os : linux arch: arm64 env: JOB_NAME=java_test - if: type = pull_request AND commit_message !~ /FULL_CI/ AND commit_message !~ /java/ os: linux arch: ppc64le env: JOB_NAME=java_test - if: type = pull_request AND commit_message !~ /FULL_CI/ AND commit_message !~ /java/ os: linux arch: s390x env: JOB_NAME=java_test - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=lite_build - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: JOB_NAME=lite_build - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: JOB_NAME=lite_build - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=examples - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: JOB_NAME=examples - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: JOB_NAME=examples - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=cmake-gcc8 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: JOB_NAME=cmake-gcc8 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: JOB_NAME=cmake-gcc8 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=cmake-gcc9 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: JOB_NAME=cmake-gcc9 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: JOB_NAME=cmake-gcc9 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=cmake-gcc9-c++20 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: JOB_NAME=cmake-gcc9-c++20 - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: JOB_NAME=cmake-gcc9-c++20 - if: type = pull_request AND commit_message !~ /FULL_CI/ os : linux arch: arm64 env: JOB_NAME=status_checked - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: ppc64le env: JOB_NAME=status_checked - if: type = pull_request AND commit_message !~ /FULL_CI/ os: linux arch: s390x env: JOB_NAME=status_checked install: - if [ "${JOB_NAME}" == cmake-gcc8 ]; then sudo apt-get install -y g++-8 || exit $?; CC=gcc-8 && CXX=g++-8; fi - if [ "${JOB_NAME}" == cmake-gcc9 ] || [ "${JOB_NAME}" == cmake-gcc9-c++20 ]; then sudo apt-get install -y g++-9 || exit $?; CC=gcc-9 && CXX=g++-9; fi - if [ "${JOB_NAME}" == cmake-mingw ]; then sudo apt-get install -y mingw-w64 || exit $?; fi - if [ "${JOB_NAME}" == make-gcc4.8 ]; then sudo apt-get install -y g++-4.8 || exit $?; CC=gcc-4.8 && CXX=g++-4.8; fi - | if [[ "${JOB_NAME}" == cmake* ]]; then sudo apt-get remove -y cmake cmake-data export CMAKE_DEB="cmake-3.14.5-Linux-$(uname -m).deb" export CMAKE_DEB_URL="https://rocksdb-deps.s3-us-west-2.amazonaws.com/cmake/${CMAKE_DEB}" curl --silent --fail --show-error --location --output "${CMAKE_DEB}" "${CMAKE_DEB_URL}" || exit $? sudo dpkg -i "${CMAKE_DEB}" || exit $? which cmake && cmake --version fi - | if [[ "${JOB_NAME}" == java_test || "${JOB_NAME}" == cmake* ]]; then # Ensure JDK 8 sudo apt-get install -y openjdk-8-jdk || exit $? export PATH=/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture)/bin:$PATH export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture) echo "JAVA_HOME=${JAVA_HOME}" which java && java -version which javac && javac -version fi before_script: # Increase the maximum number of open file descriptors, since some tests use # more FDs than the default limit. - ulimit -n 8192 script: - date; ${CXX} --version - if [ `command -v ccache` ]; then ccache -C; fi - case $TEST_GROUP in platform_dependent) OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=only make -j4 all_but_some_tests check_some ;; 1) OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_END=backupable_db_test make -j4 check_some ;; 2) OPT="-DTRAVIS -DROCKSDB_NAMESPACE=alternative_rocksdb_ns" LIB_MODE=shared V=1 make -j4 tools && OPT="-DTRAVIS -DROCKSDB_NAMESPACE=alternative_rocksdb_ns" LIB_MODE=shared V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_START=backupable_db_test ROCKSDBTESTS_END=db_universal_compaction_test make -j4 check_some ;; 3) OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_START=db_universal_compaction_test ROCKSDBTESTS_END=table_properties_collector_test make -j4 check_some ;; 4) OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_START=table_properties_collector_test make -j4 check_some ;; esac - case $JOB_NAME in java_test) OPT=-DTRAVIS LIB_MODE=shared V=1 make rocksdbjava jtest ;; lite_build) OPT='-DTRAVIS -DROCKSDB_LITE' LIB_MODE=shared V=1 make -j4 all ;; examples) OPT=-DTRAVIS LIB_MODE=shared V=1 make -j4 static_lib && cd examples && make -j4 ;; cmake-mingw) sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; 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 ;; cmake*) case $JOB_NAME in *-c++20) OPT=-DCMAKE_CXX_STANDARD=20 ;; esac mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=0 -DWITH_GFLAGS=0 -DWITH_BENCHMARK_TOOLS=0 -DWITH_TOOLS=0 -DWITH_CORE_TOOLS=1 .. && make -j4 && cd .. && rm -rf build && mkdir build && cd build && cmake -DJNI=1 .. -DCMAKE_BUILD_TYPE=Release $OPT && make -j4 rocksdb rocksdbjni ;; make-gcc4.8) OPT=-DTRAVIS LIB_MODE=shared V=1 SKIP_LINK=1 make -j4 all && [ "Linking broken because libgflags compiled with newer ABI" ] ;; status_checked) OPT=-DTRAVIS LIB_MODE=shared V=1 ASSERT_STATUS_CHECKED=1 make -j4 check_some ;; esac notifications: email: - leveldb@fb.com