Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 1 | language: c |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 2 | dist: trusty |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 3 | |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 4 | os: |
| 5 | - osx |
| 6 | - linux |
| 7 | |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 8 | compiler: |
| 9 | - clang |
| 10 | - gcc |
| 11 | |
| 12 | env: |
Bram Moolenaar | 2cb70a2 | 2016-07-16 21:58:01 +0200 | [diff] [blame] | 13 | - BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 14 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 15 | - BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes |
Bram Moolenaar | 1a9f947 | 2016-07-16 21:18:34 +0200 | [diff] [blame] | 16 | - BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no |
| 17 | - BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
| 18 | - BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 19 | # Mac OSX build |
| 20 | - BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
| 21 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 22 | # ASAN build |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 23 | - BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 24 | FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 25 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 26 | |
| 27 | sudo: false |
| 28 | |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 29 | # instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env), |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 30 | # exclude some builds on mac os x and linux |
| 31 | # linux: 2*compiler + 5*env + mac: 2*compiler + 2*env |
| 32 | matrix: |
| 33 | exclude: |
| 34 | - os: osx |
| 35 | env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no |
| 36 | - os: osx |
| 37 | env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes |
| 38 | - os: osx |
| 39 | env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
| 40 | - os: osx |
| 41 | env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
| 42 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 43 | - os: osx |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 44 | env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 45 | FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 46 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
| 47 | - os: linux |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 48 | compiler: clang |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 49 | env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 50 | FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 51 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 52 | - os: linux |
| 53 | compiler: clang |
| 54 | env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes |
| 55 | - os: linux |
| 56 | compiler: clang |
| 57 | env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
| 58 | - os: linux |
| 59 | env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
| 60 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
| 61 | |
Bram Moolenaar | c1d2099 | 2015-09-25 20:30:58 +0200 | [diff] [blame] | 62 | branches: |
| 63 | except: |
| 64 | - /^v[0-9]/ |
| 65 | |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 66 | addons: |
| 67 | apt: |
| 68 | packages: |
Bram Moolenaar | 7b5f0a1 | 2015-12-30 17:40:43 +0100 | [diff] [blame] | 69 | - autoconf |
Bram Moolenaar | 9e27217 | 2017-11-17 21:25:08 +0100 | [diff] [blame] | 70 | - clang |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 71 | - lcov |
| 72 | - libperl-dev |
| 73 | - python-dev |
| 74 | - python3-dev |
Bram Moolenaar | cb25d18 | 2017-07-27 21:29:31 +0200 | [diff] [blame] | 75 | - liblua5.2-dev |
| 76 | - lua5.2 |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 77 | - ruby-dev |
Bram Moolenaar | 4724728 | 2016-08-02 22:36:02 +0200 | [diff] [blame] | 78 | - cscope |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 79 | - libgtk2.0-dev |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 80 | |
| 81 | before_install: |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 82 | - rvm reset |
| 83 | # Remove /opt/python/3.x.x/bin from $PATH for using system python3. |
| 84 | # ("pyenv global system" doesn't seem to work.) |
| 85 | - if [ "$TRAVIS_OS_NAME" = "linux" ] && which python3 | grep '/opt/python/' > /dev/null; then export PATH=$(echo $PATH | sed -e "s#$(echo $(which python3) | sed -e 's#/python3$##'):##"); fi |
| 86 | - if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi |
Bram Moolenaar | 4f7090b | 2017-01-26 21:24:02 +0100 | [diff] [blame] | 87 | # needed for https support for coveralls |
| 88 | # building cffi only works with gcc, not with clang |
| 89 | - if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 90 | # Lua is not installed on Travis OSX |
Bram Moolenaar | 8065cf2 | 2017-10-12 21:45:23 +0200 | [diff] [blame] | 91 | - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export HOMEBREW_NO_AUTO_UPDATE=1; brew update; brew install lua; export LUA_PREFIX=/usr/local; fi |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 92 | # Use llvm-cov instead of gcov when compiler is clang. |
| 93 | - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CC" = "clang" ]; then ln -sf $(which llvm-cov) /home/travis/bin/gcov; fi |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 94 | |
Bram Moolenaar | b6be3ea | 2016-11-12 18:30:39 +0100 | [diff] [blame] | 95 | # Start virtual framebuffer to be able to test the GUI. Does not work on OS X. |
Bram Moolenaar | e3505df | 2016-11-11 21:57:45 +0100 | [diff] [blame] | 96 | before_script: |
Bram Moolenaar | b6be3ea | 2016-11-12 18:30:39 +0100 | [diff] [blame] | 97 | - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi |
Bram Moolenaar | e3505df | 2016-11-11 21:57:45 +0100 | [diff] [blame] | 98 | |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 99 | script: |
| 100 | - NPROC=$(getconf _NPROCESSORS_ONLN) |
Bram Moolenaar | 7b5f0a1 | 2015-12-30 17:40:43 +0100 | [diff] [blame] | 101 | - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi |
Bram Moolenaar | 1a9f947 | 2016-07-16 21:18:34 +0200 | [diff] [blame] | 102 | - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi |
Bram Moolenaar | 87776a1 | 2016-07-16 21:37:49 +0200 | [diff] [blame] | 103 | - (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi) |
Bram Moolenaar | 02113ed | 2017-08-06 17:06:24 +0200 | [diff] [blame] | 104 | # Show Vim version and also if_xx versions. |
| 105 | - if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-1.vim -c quit > /dev/null; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-2.vim -c quit > /dev/null; cat if_ver.txt; fi |
Bram Moolenaar | 1a9f947 | 2016-07-16 21:18:34 +0200 | [diff] [blame] | 106 | - make $SHADOWOPT $TEST |
Bram Moolenaar | 9e27217 | 2017-11-17 21:25:08 +0100 | [diff] [blame] | 107 | - if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do asan_symbolize < "$log"; err=1; done; fi |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 108 | - if [ -n "$err" ]; then exit 1; fi |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 109 | |
| 110 | after_success: |
Bram Moolenaar | 87776a1 | 2016-07-16 21:37:49 +0200 | [diff] [blame] | 111 | - if [ "$COVERAGE" = "yes" ]; then ~/.local/bin/coveralls -b $SRCDIR -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi |
Bram Moolenaar | d722fd7 | 2017-03-25 17:46:59 +0100 | [diff] [blame] | 112 | - if [ "$COVERAGE" = "yes" ]; then cd $SRCDIR && bash <(curl -s https://codecov.io/bash) ; fi |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 113 | |
| 114 | # vim:set sts=2 sw=2 tw=0 et: |