2015-07-05 00:52:36 -07:00
|
|
|
sudo: false
|
2014-02-22 10:29:21 -07:00
|
|
|
language: c
|
2015-07-05 00:52:36 -07:00
|
|
|
|
2014-04-22 10:40:19 -07:00
|
|
|
env:
|
2014-05-31 07:19:14 -07:00
|
|
|
global:
|
2014-11-28 15:23:12 -07:00
|
|
|
# To build third-party dependencies, set this to 'true'.
|
2015-07-05 00:52:36 -07:00
|
|
|
# TODO: Change deps caching to detect updated dependencies automatically, but
|
|
|
|
# still don't rebuild deps every time.
|
2014-11-28 15:23:12 -07:00
|
|
|
- BUILD_NVIM_DEPS=false
|
2015-07-05 00:52:36 -07:00
|
|
|
# Travis has 1.5 virtual cores according to
|
|
|
|
# http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM
|
2014-11-27 07:10:36 -07:00
|
|
|
- MAKE_CMD="make -j2"
|
2015-07-05 00:52:36 -07:00
|
|
|
# Update PATH for pip and MinGW.
|
|
|
|
- PATH="$(python -c 'import site; print(site.getuserbase())')/bin:$HOME/.local/mingw32/bin:$PATH"
|
|
|
|
# LLVM symbolizer path.
|
|
|
|
- LLVM_SYMBOLIZER="$(which llvm-symbolizer-3.6)"
|
2014-11-27 07:10:36 -07:00
|
|
|
# Force verification of DLOG macros.
|
2015-07-05 00:52:36 -07:00
|
|
|
- CFLAGS="-DMIN_LOG_LEVEL=0"
|
|
|
|
# Build directory for Neovim.
|
|
|
|
- BUILD_DIR="$TRAVIS_BUILD_DIR/build"
|
|
|
|
# Build directory for third-party dependencies.
|
|
|
|
- DEPS_BUILD_DIR="$TRAVIS_BUILD_DIR/deps-build"
|
|
|
|
# Directory where compiled third-party dependencies are stored.
|
|
|
|
- DEPS_INSTALL_PREFIX="$HOME/nvim-deps-install"
|
|
|
|
# Install directory for Neovim.
|
|
|
|
- INSTALL_PREFIX="$HOME/nvim-install"
|
|
|
|
# Log directory for Clang sanitizers and Valgrind.
|
|
|
|
- LOG_DIR="$BUILD_DIR/log"
|
|
|
|
# Default CMake flags.
|
|
|
|
- CMAKE_FLAGS="-DTRAVIS_CI_BUILD=ON
|
|
|
|
-DCMAKE_BUILD_TYPE=Debug
|
|
|
|
-DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX
|
|
|
|
-DUSE_GCOV=ON
|
|
|
|
-DBUSTED_OUTPUT_TYPE=plainTerminal
|
|
|
|
-DDEPS_PREFIX=$DEPS_INSTALL_PREFIX"
|
|
|
|
- DEPS_CMAKE_FLAGS="-DDEPS_INSTALL_DIR:PATH=$DEPS_INSTALL_PREFIX"
|
|
|
|
# Additional CMake flags for 32-bit builds.
|
|
|
|
- CMAKE_FLAGS_32BIT="-DCMAKE_SYSTEM_LIBRARY_PATH=/lib32:/usr/lib32:/usr/local/lib32
|
|
|
|
-DCMAKE_IGNORE_PATH=/lib:/usr/lib:/usr/local/lib
|
|
|
|
-DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake"
|
|
|
|
# Additional CMake flags for MinGW builds.
|
|
|
|
- CMAKE_FLAGS_MINGW="-DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/mingw32-w64-cross-travis.toolchain.cmake"
|
|
|
|
# Environment variables for Clang sanitizers.
|
|
|
|
- ASAN_OPTIONS="detect_leaks=1:check_initialization_order=1:log_path=$LOG_DIR/asan"
|
|
|
|
- ASAN_SYMBOLIZER_PATH="$LLVM_SYMBOLIZER"
|
|
|
|
- MSAN_SYMBOLIZER_PATH="$LLVM_SYMBOLIZER"
|
|
|
|
- TSAN_OPTIONS="external_symbolizer_path=$LLVM_SYMBOLIZER log_path=$LOG_DIR/tsan"
|
|
|
|
- UBSAN_OPTIONS="log_path=$LOG_DIR/ubsan"
|
|
|
|
# Environment variables for Valgrind.
|
|
|
|
- VALGRIND_LOG="$LOG_DIR/valgrind-%p.log"
|
|
|
|
# Cache marker for third-party dependencies cache.
|
|
|
|
# If this file exists, we know that the cache contains compiled
|
|
|
|
# dependencies and we can use it.
|
|
|
|
- CACHE_MARKER="$HOME/.cache/nvim-deps/.travis_cache_marker"
|
|
|
|
# Test success marker. If this file exists, we know that all tests
|
|
|
|
# were successful. Required because we only want to update the cache
|
|
|
|
# if the tests were successful, but don't have this information
|
|
|
|
# available in before_cache (which is run before after_success).
|
|
|
|
- SUCCESS_MARKER="$BUILD_DIR/.tests_successful"
|
|
|
|
|
2014-11-27 07:10:36 -07:00
|
|
|
matrix:
|
|
|
|
include:
|
2015-06-08 09:49:23 -07:00
|
|
|
- os: linux
|
2015-07-05 00:52:36 -07:00
|
|
|
env: CI_TARGET=clint
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc-5
|
2015-07-05 07:11:09 -07:00
|
|
|
env: GCOV=gcov-5
|
2015-07-05 00:52:36 -07:00
|
|
|
- os: linux
|
|
|
|
# Travis creates a cache per compiler.
|
|
|
|
# Set a different value here to store 32-bit
|
|
|
|
# dependencies in a separate cache.
|
|
|
|
compiler: gcc-5 -m32
|
2015-07-05 07:11:09 -07:00
|
|
|
env: GCOV=gcov-5 BUILD_32BIT=ON
|
2015-06-08 09:49:23 -07:00
|
|
|
- os: linux
|
2015-07-05 00:52:36 -07:00
|
|
|
compiler: clang-3.6
|
2015-07-05 07:11:09 -07:00
|
|
|
env: GCOV=llvm-cov-3.6 CLANG_SANITIZER=ASAN_UBSAN
|
2015-07-05 00:52:36 -07:00
|
|
|
- os: linux
|
|
|
|
compiler: clang-3.6
|
2015-07-05 07:11:09 -07:00
|
|
|
env: GCOV=llvm-cov-3.6 CLANG_SANITIZER=MSAN
|
2015-08-28 08:29:15 -07:00
|
|
|
- os: linux
|
|
|
|
compiler: clang-3.6
|
2015-08-29 05:19:54 -07:00
|
|
|
env: CLANG_SANITIZER=TSAN
|
2014-11-27 07:10:36 -07:00
|
|
|
- os: osx
|
2014-11-30 03:27:08 -07:00
|
|
|
compiler: clang
|
2015-07-05 07:11:09 -07:00
|
|
|
env: GCOV=gcov
|
2014-11-27 07:10:36 -07:00
|
|
|
- os: osx
|
|
|
|
compiler: gcc-4.9
|
2015-07-05 07:11:09 -07:00
|
|
|
env: GCOV=gcov-4.9
|
2015-07-05 00:52:36 -07:00
|
|
|
- os: linux
|
|
|
|
env: BUILD_MINGW=ON
|
2015-02-02 09:19:12 -07:00
|
|
|
fast_finish: true
|
2015-06-16 08:23:32 -07:00
|
|
|
allow_failures:
|
2015-07-05 00:52:36 -07:00
|
|
|
# TODO: Remove when all MSan errors have been fixed.
|
|
|
|
- env: GCOV=llvm-cov-3.6 CLANG_SANITIZER=MSAN
|
|
|
|
|
|
|
|
before_install: .ci/before_install.sh
|
|
|
|
install: .ci/install.sh
|
|
|
|
before_script: .ci/before_script.sh
|
|
|
|
script: .ci/script.sh
|
|
|
|
before_cache: .ci/before_cache.sh
|
|
|
|
after_success: .ci/after_success.sh
|
|
|
|
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- llvm-toolchain-precise-3.6
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
packages:
|
|
|
|
# Basic Neovim/test dependencies.
|
|
|
|
- autoconf
|
|
|
|
- automake
|
|
|
|
- build-essential
|
|
|
|
- cmake
|
|
|
|
- gdb
|
|
|
|
- libtool
|
|
|
|
- pkg-config
|
|
|
|
- unzip
|
|
|
|
- xclip
|
|
|
|
# Additional compilers/tools.
|
|
|
|
- clang-3.6
|
|
|
|
- g++-5-multilib
|
|
|
|
- g++-multilib
|
|
|
|
- gcc-5-multilib
|
|
|
|
- gcc-multilib
|
|
|
|
- libc6-dev-i386
|
|
|
|
- llvm-3.6-dev
|
|
|
|
- valgrind
|
|
|
|
|
|
|
|
branches:
|
|
|
|
except:
|
|
|
|
- nightly
|
|
|
|
|
|
|
|
cache:
|
|
|
|
apt: true
|
|
|
|
directories:
|
|
|
|
- "$HOME/.cache/pip"
|
|
|
|
- "$HOME/.cache/nvim-deps"
|
|
|
|
|
2015-03-17 16:36:45 -07:00
|
|
|
notifications:
|
|
|
|
webhooks:
|
|
|
|
urls:
|
|
|
|
- https://webhooks.gitter.im/e/b5c38c99f9677aa3d031
|