language: cpp # sudo:required is needed for trusty images sudo: required dist: trusty notifications: email: false branches: only: - master cache: - ccache: true - apt: true matrix: fast_finish: true include: # Debug Builds - os: linux compiler: gcc addons: &gcc5 apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'pip', 'ccache'] env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Debug' - os: linux compiler: gcc addons: &gcc48 apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache'] env: CCOMPILER='gcc-4.8' CXXCOMPILER='g++-4.8' BUILD_TYPE='Debug' - os: linux compiler: clang addons: &clang38 apt: sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test'] packages: ['clang-3.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache'] env: CCOMPILER='clang-3.8' CXXCOMPILER='clang++-3.8' BUILD_TYPE='Debug' RUN_CLANG_FORMAT=ON - os: osx osx_image: xcode7.3 compiler: clang env: CCOMPILER='clang' CXXCOMPILER='clang++' BUILD_TYPE='Debug' # Release Builds - os: linux compiler: gcc addons: &gcc5 apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache'] env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Release' # Disabled because of CI slowness #- os: linux #- compiler: gcc #- addons: &gcc48 #- apt: #- sources: ['ubuntu-toolchain-r-test'] #- packages: ['g++-4.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] #- env: CCOMPILER='gcc-4.8' CXXCOMPILER='g++-4.8' BUILD_TYPE='Release' # Disabled because of CI slowness #- os: linux #- compiler: clang #- addons: &clang38 #- apt: #- sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test'] #- packages: ['clang-3.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] #- env: CCOMPILER='clang-3.8' CXXCOMPILER='clang++-3.8' BUILD_TYPE='Release' # Disabled because of CI slowness #- os: osx #- osx_image: xcode7.3 #- compiler: clang #- env: CCOMPILER='clang' CXXCOMPILER='clang++' BUILD_TYPE='Release' # Shared Library - os: linux compiler: gcc addons: &gcc5 apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache'] env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Release' BUILD_SHARED_LIBS=ON # Disabled because CI slowness #- os: linux #- compiler: clang #- addons: &clang38 #- apt: #- sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test'] #- packages: ['clang-3.8', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev'] #- env: CCOMPILER='clang-3.8' CXXCOMPILER='clang++-3.8' BUILD_TYPE='Release' BUILD_SHARED_LIBS=ON before_install: - source ./scripts/install_node.sh 4 install: - npm install - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR} - | if [[ -n "${COVERAGE}" ]]; then pip install --user cpp-coveralls fi - | if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then CMAKE_URL="http://www.cmake.org/files/v3.5/cmake-3.5.1-Linux-x86_64.tar.gz" mkdir cmake && travis_retry wget --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake export PATH=${DEPS_DIR}/cmake/bin:${PATH} elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then # implicit deps, but seem to be installed by default with recent images: libxml2 GDAL boost brew install cmake libzip libstxxl lua51 luabind tbb md5sha1sum fi before_script: - cd ${TRAVIS_BUILD_DIR} - | if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then ./scripts/check_taginfo.py taginfo.json profiles/car.lua fi - mkdir build && pushd build - export CC=${CCOMPILER} CXX=${CXXCOMPILER} - export OSRM_PORT=5000 OSRM_TIMEOUT=6000 - cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS:-OFF} -DCOVERAGE=${COVERAGE:-OFF} -DBUILD_TOOLS=1 -DENABLE_CCACHE=ON script: - echo "travis_fold:start:MAKE" - make --jobs=2 - make tests --jobs=2 - make benchmarks - echo "travis_fold:end:MAKE" - echo "travis_fold:start:INSTALL" - sudo make install - | if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo ldconfig fi - echo "travis_fold:end:INSTALL" - echo "travis_fold:start:BENCHMARK" - make -C ../test/data benchmark - echo "travis_fold:end:BENCHMARK" - echo "travis_fold:start:UNIT_TESTS" - ./unit_tests/extractor-tests - ./unit_tests/engine-tests - ./unit_tests/util-tests - ./unit_tests/server-tests - ./unit_tests/library-tests ../test/data/monaco.osrm - echo "travis_fold:end:UNIT_TESTS" - popd - echo "travis_fold:start:CUCUMBER" - npm test - echo "travis_fold:end:CUCUMBER" - mkdir example/build && pushd example/build - cmake .. - make - ./osrm-example ../../test/data/monaco.osrm - popd after_success: - | if [ -n "${RUN_CLANG_FORMAT}" ]; then ./scripts/format.sh || true # we don't want to fail just yet fi - | if [ -n "${COVERAGE}" ]; then coveralls --build-root build --exclude unit_tests --exclude third_party --exclude node_modules --gcov-options '\-lp' fi