60 lines
2.3 KiB
YAML
60 lines
2.3 KiB
YAML
language: cpp
|
|
sudo: required
|
|
dist: trusty
|
|
compiler:
|
|
- gcc
|
|
- clang
|
|
os:
|
|
- linux
|
|
- osx
|
|
matrix:
|
|
allow_failures:
|
|
- os: linux
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
sources:
|
|
# Both needed for clang 3.7
|
|
- llvm-toolchain-precise-3.7
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-3.7
|
|
- libcrypto++-dev
|
|
- libfuse-dev
|
|
install:
|
|
# Use new clang on linux
|
|
- if [ "${TRAVIS_OS_NAME}" == "linux" ] && [ "$CXX" = "clang++" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi
|
|
# If using gcc on mac, actually use it ("gcc" just links to clang, but "gcc-4.8" is gcc, https://github.com/travis-ci/travis-ci/issues/2423)
|
|
- if [ "${TRAVIS_OS_NAME}" == "osx" ] && ["${CXX}" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
|
|
# Detect number of CPU cores
|
|
- export NUMCORES=`grep -c ^processor /proc/cpuinfo` && if [ ! -n "$NUMCORES" ]; then export NUMCORES=`sysctl -n hw.ncpu`; fi
|
|
- echo Using $NUMCORES cores
|
|
# Install dependencies
|
|
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then ./travis.install_boost.sh; fi
|
|
- if [ "${TRAVIS_OS_NAME}" == "osx" ]; then brew upgrade boost && brew install cryptopp osxfuse; fi
|
|
# By default, travis only fetches the newest 50 commits. We need more in case we're further from the last version tag, so the build doesn't fail because it can't generate the version number.
|
|
- git fetch --unshallow
|
|
# Install run_with_fuse.sh
|
|
- mkdir cmake
|
|
- cd cmake
|
|
- wget https://raw.githubusercontent.com/smessmer/travis-utils/master/run_with_fuse.sh
|
|
- chmod +x run_with_fuse.sh
|
|
- cmake --version
|
|
# Use /dev/urandom when /dev/random is accessed, because travis doesn't have enough entropy
|
|
- sudo cp -a /dev/urandom /dev/random
|
|
script:
|
|
- cmake .. -DBUILD_TESTING=on -DCMAKE_BUILD_TYPE=Debug
|
|
- make -j$NUMCORES
|
|
- ./test/gitversion/gitversion-test
|
|
- ./test/cpp-utils/cpp-utils-test
|
|
# TODO Also run on osx once fixed
|
|
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then ./run_with_fuse.sh ./test/fspp/fspp-test || exit 1; fi
|
|
- ./test/parallelaccessstore/parallelaccessstore-test
|
|
- ./test/blockstore/blockstore-test
|
|
- ./test/blobstore/blobstore-test
|
|
# TODO Also run on osx once fixed
|
|
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then ./test/cryfs/cryfs-test || exit 1; fi
|
|
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then ./test/cryfs-cli/cryfs-cli-test || exit 1; fi
|
|
after_script:
|
|
- rm run_with_fuse.sh
|