mirror of
https://github.com/facebook/rocksdb.git
synced 2024-11-30 04:41:49 +00:00
a67fb4c9bd
Summary: When Travis times out, it's hard to determine whether the last executing thing took an excessively long time or the sum of all the work just exceeded the time limit. This change inserts some timestamps in the output that should make this easier to determine. Pull Request resolved: https://github.com/facebook/rocksdb/pull/6643 Test Plan: CI (Travis mostly) Reviewed By: anand1976 Differential Revision: D20843901 Pulled By: pdillinger fbshipit-source-id: e7aae5434b0c609931feddf238ce4355964488b7
244 lines
6.4 KiB
YAML
244 lines
6.4 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-mingw # 3 minutes
|
|
|
|
matrix:
|
|
exclude:
|
|
- os: osx
|
|
env: JOB_NAME=cmake-gcc8
|
|
- os: osx
|
|
env: JOB_NAME=cmake-mingw
|
|
- os: osx
|
|
arch: ppc64le
|
|
- os: osx
|
|
compiler: gcc
|
|
- os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=cmake-mingw
|
|
- os: linux
|
|
arch: ppc64le
|
|
env: JOB_NAME=cmake-mingw
|
|
- os: linux
|
|
compiler: clang
|
|
# Exclude most osx, arm64 and ppc64le tests for pull requests, but build in branches
|
|
# 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
|
|
os : osx
|
|
env: JOB_NAME=java_test
|
|
- if: type = pull_request
|
|
os : linux
|
|
arch: arm64
|
|
env: JOB_NAME=java_test
|
|
- if: type = pull_request
|
|
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
|
|
|
|
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-mingw ]; then
|
|
sudo apt-get install -y mingw-w64 ;
|
|
fi
|
|
- if [[ "${JOB_NAME}" == cmake* ]] && [ "${TRAVIS_OS_NAME}" == linux ]; then
|
|
CMAKE_DIST_URL="https://rocksdb-deps.s3-us-west-2.amazonaws.com/cmake/cmake-3.14.5-Linux-$(uname -m).tar.bz2";
|
|
TAR_OPT="--strip-components=1 -xj";
|
|
if [ "aarch64" == "$(uname -m)" ]; then
|
|
sudo apt-get install -y libuv1 librhash0;
|
|
sudo apt-get upgrade -y libstdc++6;
|
|
fi;
|
|
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;
|
|
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 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 static_lib tools
|
|
;;
|
|
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*)
|
|
mkdir build && cd build && cmake -DJNI=1 .. -DCMAKE_BUILD_TYPE=Release && make -j4 rocksdb rocksdbjni
|
|
;;
|
|
esac
|
|
notifications:
|
|
email:
|
|
- leveldb@fb.com
|