66cd07c6d9
Summary: This commit fixes an incorrect version of this change that was previously landed. On recently adding ARM64 and PPC64LE builds to Travis, we seem to have hit some parallel build limits that dramatically increased queue times. This change majorly limits the configurations for ARM64 and PPC64LE to build on each pull request, but keeps the large matrix for branch builds. In the process, I changed some previously excluded osx build configurations to happen in branch builds. NB: we might want to move master branch Travis build to daily trigger rather than push trigger to further reduce contention. Pull Request resolved: https://github.com/facebook/rocksdb/pull/6557 Test Plan: Travis only Reviewed By: siying Differential Revision: D20563425 Pulled By: pdillinger fbshipit-source-id: d619eb9f196486ed000364aa40de4661f0b1029d
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:
|
|
- ${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
|