bd77e34191
Summary: (a) use STRESS_LIBRARY for db_stress and make sure STRESS_LIBRARY has other stress test dependencies (as in buck build) (b) fix rpath option to be accepted on MacOS. It still doesn't fully work for me e.g. to run a LIB_MODE=shared unit test binary from another directory, as it does on Linux, but the option is now accepted, and running unit tests from current directory works for me. Also adding LIB_MODE=shared to Travis. (Later TBD where best to fit in in CircleCI.) Pull Request resolved: https://github.com/facebook/rocksdb/pull/7066 Test Plan: manual Reviewed By: cheng-chang Differential Revision: D22364068 Pulled By: pdillinger fbshipit-source-id: 6fa98a222f89f808ee786474de1100d92c1adec3
320 lines
8.5 KiB
YAML
320 lines
8.5 KiB
YAML
dist: xenial
|
|
language: cpp
|
|
os:
|
|
- linux
|
|
- osx
|
|
arch:
|
|
- amd64
|
|
- arm64
|
|
- ppc64le
|
|
compiler:
|
|
- clang
|
|
- gcc
|
|
osx_image: xcode9.4
|
|
cache:
|
|
- ccache
|
|
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- libgflags-dev
|
|
- libbz2-dev
|
|
- liblz4-dev
|
|
- libsnappy-dev
|
|
- liblzma-dev # xv
|
|
- libzstd-dev
|
|
- zlib1g-dev
|
|
homebrew:
|
|
update: true
|
|
packages:
|
|
- ccache
|
|
- gflags
|
|
- lz4
|
|
- snappy
|
|
- xz
|
|
- zstd
|
|
|
|
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: osx
|
|
env: JOB_NAME=cmake-gcc8
|
|
- os: osx
|
|
env: JOB_NAME=cmake-gcc9
|
|
- os: osx
|
|
env: JOB_NAME=cmake-gcc9-c++20
|
|
- os: osx
|
|
env: JOB_NAME=cmake-mingw
|
|
- os: osx
|
|
env: JOB_NAME=make-gcc4.8
|
|
- os: osx
|
|
arch: ppc64le
|
|
- os: osx
|
|
compiler: gcc
|
|
- 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
|
|
compiler: clang
|
|
# Exclude all but most unique cmake variants for pull requests, but build all in branches
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: amd64
|
|
env: JOB_NAME=cmake
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: amd64
|
|
env: JOB_NAME=cmake-gcc8
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: amd64
|
|
env: JOB_NAME=cmake-gcc9
|
|
# Exclude most osx, arm64 and ppc64le tests for pull requests, but build in branches
|
|
# Temporarily disable ppc64le unit tests in PRs until Travis gets its act together (#6653)
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: TEST_GROUP=platform_dependent
|
|
# NB: the cmake build is a partial java test
|
|
- if: type = pull_request
|
|
os: osx
|
|
env: TEST_GROUP=1
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: TEST_GROUP=1
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: TEST_GROUP=1
|
|
- if: type = pull_request
|
|
os: osx
|
|
env: TEST_GROUP=2
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: TEST_GROUP=2
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: TEST_GROUP=2
|
|
- if: type = pull_request
|
|
os: osx
|
|
env: TEST_GROUP=3
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: TEST_GROUP=3
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: TEST_GROUP=3
|
|
- if: type = pull_request
|
|
os: osx
|
|
env: TEST_GROUP=4
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: TEST_GROUP=4
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: TEST_GROUP=4
|
|
- if: type = pull_request AND commit_message !~ /java/
|
|
os : osx
|
|
env: JOB_NAME=java_test
|
|
- if: type = pull_request AND commit_message !~ /java/
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=java_test
|
|
- if: type = pull_request AND commit_message !~ /java/
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=java_test
|
|
- if: type = pull_request
|
|
os : osx
|
|
env: JOB_NAME=lite_build
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=lite_build
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=lite_build
|
|
- if: type = pull_request
|
|
os : osx
|
|
env: JOB_NAME=examples
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=examples
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=examples
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=cmake-gcc8
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=cmake-gcc8
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=cmake-gcc9
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=cmake-gcc9
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=cmake-gcc9-c++20
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=cmake-gcc9-c++20
|
|
- if: type = pull_request
|
|
os : osx
|
|
env: JOB_NAME=status_checked
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=status_checked
|
|
- if: type = pull_request
|
|
os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=status_checked
|
|
|
|
install:
|
|
- if [ "${TRAVIS_OS_NAME}" == osx ]; then
|
|
PATH=$PATH:/usr/local/opt/ccache/libexec;
|
|
fi
|
|
- if [ "${JOB_NAME}" == cmake-gcc8 ]; then
|
|
sudo apt-get install -y g++-8;
|
|
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;
|
|
CC=gcc-9 && CXX=g++-9;
|
|
fi
|
|
- if [ "${JOB_NAME}" == cmake-mingw ]; then
|
|
sudo apt-get install -y mingw-w64 ;
|
|
fi
|
|
- if [ "${JOB_NAME}" == make-gcc4.8 ]; then
|
|
sudo apt-get install -y g++-4.8 ;
|
|
CC=gcc-4.8 && CXX=g++-4.8;
|
|
fi
|
|
- if [[ "${JOB_NAME}" == cmake* ]] && [ "${TRAVIS_OS_NAME}" == linux ]; then
|
|
sudo snap install cmake --beta --classic;
|
|
export PATH=/snap/bin:$PATH;
|
|
fi
|
|
- |
|
|
if [[ "${JOB_NAME}" == java_test || "${JOB_NAME}" == cmake* ]]; then
|
|
# Ensure JDK 8
|
|
if [ "${TRAVIS_OS_NAME}" == osx ]; then
|
|
brew tap AdoptOpenJDK/openjdk
|
|
brew cask install adoptopenjdk8
|
|
export JAVA_HOME=$(/usr/libexec/java_home)
|
|
else
|
|
sudo apt-get install -y openjdk-8-jdk
|
|
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)
|
|
fi
|
|
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 V=1 ROCKSDBTESTS_END=db_block_cache_test make -j4 all_but_some_tests check_some
|
|
;;
|
|
1)
|
|
OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=db_block_cache_test ROCKSDBTESTS_END=db_iter_test make -j4 check_some
|
|
;;
|
|
2)
|
|
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
|
|
;;
|
|
3)
|
|
OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_START=options_file_test ROCKSDBTESTS_END=write_prepared_transaction_test make -j4 check_some
|
|
;;
|
|
4)
|
|
OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=write_prepared_transaction_test make -j4 check_some
|
|
;;
|
|
esac
|
|
- case $JOB_NAME in
|
|
java_test)
|
|
OPT=-DTRAVIS V=1 make rocksdbjava jtest
|
|
;;
|
|
lite_build)
|
|
OPT='-DTRAVIS -DROCKSDB_LITE' V=1 make -j4 all
|
|
;;
|
|
examples)
|
|
OPT=-DTRAVIS 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 V=1 SKIP_LINK=1 make -j4 all && [ "Linking broken because libgflags compiled with newer ABI" ]
|
|
;;
|
|
status_checked)
|
|
OPT=-DTRAVIS V=1 ASSERT_STATUS_CHECKED=1 make -j4 check_some
|
|
;;
|
|
esac
|
|
notifications:
|
|
email:
|
|
- leveldb@fb.com
|