blob: 60e7604621870ebdadea9b8ddb5a29a140a7b62e [file] [log] [blame]
Bram Moolenaar0600f352015-09-15 19:18:18 +02001language: c
Bram Moolenaar02113ed2017-08-06 17:06:24 +02002dist: trusty
Bram Moolenaar0600f352015-09-15 19:18:18 +02003
Bram Moolenaarb20617b2016-07-30 17:41:49 +02004os:
5 - osx
6 - linux
7
Bram Moolenaar0600f352015-09-15 19:18:18 +02008compiler:
9 - clang
10 - gcc
11
12env:
Bram Moolenaar2cb70a22016-07-16 21:58:01 +020013 - BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaar0600f352015-09-15 19:18:18 +020014 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020015 - BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
Bram Moolenaar1a9f9472016-07-16 21:18:34 +020016 - 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 Moolenaarb20617b2016-07-30 17:41:49 +020019 # 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 Moolenaar1e076332017-01-26 20:11:12 +010022 # ASAN build
Bram Moolenaara3828682017-03-05 14:56:07 +010023 - BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
Bram Moolenaar02113ed2017-08-06 17:06:24 +020024 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 Moolenaar1e076332017-01-26 20:11:12 +010025 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar0600f352015-09-15 19:18:18 +020026
27sudo: false
28
Bram Moolenaar1e076332017-01-26 20:11:12 +010029# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
Bram Moolenaarb20617b2016-07-30 17:41:49 +020030# exclude some builds on mac os x and linux
31# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
32matrix:
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 Moolenaar1e076332017-01-26 20:11:12 +010043 - os: osx
Bram Moolenaara3828682017-03-05 14:56:07 +010044 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
Bram Moolenaar02113ed2017-08-06 17:06:24 +020045 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 Moolenaar1e076332017-01-26 20:11:12 +010046 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
47 - os: linux
Bram Moolenaar02113ed2017-08-06 17:06:24 +020048 compiler: clang
Bram Moolenaara3828682017-03-05 14:56:07 +010049 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
Bram Moolenaar02113ed2017-08-06 17:06:24 +020050 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 Moolenaar1e076332017-01-26 20:11:12 +010051 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020052 - 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 Moolenaarc1d20992015-09-25 20:30:58 +020062branches:
63 except:
64 - /^v[0-9]/
65
Bram Moolenaar0600f352015-09-15 19:18:18 +020066addons:
67 apt:
68 packages:
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010069 - autoconf
Bram Moolenaar9e272172017-11-17 21:25:08 +010070 - clang
Bram Moolenaar0600f352015-09-15 19:18:18 +020071 - lcov
72 - libperl-dev
73 - python-dev
74 - python3-dev
Bram Moolenaarcb25d182017-07-27 21:29:31 +020075 - liblua5.2-dev
76 - lua5.2
Bram Moolenaar02113ed2017-08-06 17:06:24 +020077 - ruby-dev
Bram Moolenaar47247282016-08-02 22:36:02 +020078 - cscope
Bram Moolenaar02113ed2017-08-06 17:06:24 +020079 - libgtk2.0-dev
Bram Moolenaar0600f352015-09-15 19:18:18 +020080
81before_install:
Bram Moolenaar02113ed2017-08-06 17:06:24 +020082 - 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 Moolenaar4f7090b2017-01-26 21:24:02 +010087 # 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 Moolenaarb20617b2016-07-30 17:41:49 +020090 # Lua is not installed on Travis OSX
Bram Moolenaar8065cf22017-10-12 21:45:23 +020091 - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export HOMEBREW_NO_AUTO_UPDATE=1; brew update; brew install lua; export LUA_PREFIX=/usr/local; fi
Bram Moolenaar02113ed2017-08-06 17:06:24 +020092 # 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 Moolenaar0600f352015-09-15 19:18:18 +020094
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010095# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
Bram Moolenaare3505df2016-11-11 21:57:45 +010096before_script:
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010097 - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi
Bram Moolenaare3505df2016-11-11 21:57:45 +010098
Bram Moolenaar0600f352015-09-15 19:18:18 +020099script:
100 - NPROC=$(getconf _NPROCESSORS_ONLN)
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +0100101 - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
Bram Moolenaar1a9f9472016-07-16 21:18:34 +0200102 - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
Bram Moolenaar87776a12016-07-16 21:37:49 +0200103 - (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
Bram Moolenaar02113ed2017-08-06 17:06:24 +0200104 # 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 Moolenaar1a9f9472016-07-16 21:18:34 +0200106 - make $SHADOWOPT $TEST
Bram Moolenaar9e272172017-11-17 21:25:08 +0100107 - if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do asan_symbolize < "$log"; err=1; done; fi
Bram Moolenaara3828682017-03-05 14:56:07 +0100108 - if [ -n "$err" ]; then exit 1; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200109
110after_success:
Bram Moolenaar56f99552018-04-12 20:06:05 +0200111 - 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 Moolenaar1ed00332018-04-11 21:03:08 +0200112 - if [ "$COVERAGE" = "yes" ]; then cd ${SRCDIR} && bash <(curl -s https://codecov.io/bash) ; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200113
114# vim:set sts=2 sw=2 tw=0 et: