blob: 277e6feb00a2e881a1c2f81ef551a356a559b121 [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 Moolenaarb2e54b02019-01-19 13:46:50 +010013 - BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaare67a7d62018-09-05 22:25:50 +020014 - BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
15 # ASAN build
16 - BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
17 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"
18 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaara9659e02018-12-15 15:59:32 +010019 - BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarade55782018-07-01 21:12:55 +020020 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020021 - 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 +020022 - BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
23 - BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarb20617b2016-07-30 17:41:49 +020024 # Mac OSX build
25 - BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarade55782018-07-01 21:12:55 +020026 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaar0600f352015-09-15 19:18:18 +020027
28sudo: false
29
Bram Moolenaara9659e02018-12-15 15:59:32 +010030# instead of a 2*2*7 matrix (2*os + 2*compiler + 7*env),
Bram Moolenaarb20617b2016-07-30 17:41:49 +020031# exclude some builds on mac os x and linux
Bram Moolenaarb2e54b02019-01-19 13:46:50 +010032# on mac os x "tiny" is always without GUI
Bram Moolenaarb20617b2016-07-30 17:41:49 +020033# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
34matrix:
35 exclude:
36 - os: osx
Bram Moolenaarb2e54b02019-01-19 13:46:50 +010037 env: BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
38 - os: osx
Bram Moolenaarb20617b2016-07-30 17:41:49 +020039 env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
40 - os: osx
41 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
42 - os: osx
43 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
44 - os: osx
Bram Moolenaara9659e02018-12-15 15:59:32 +010045 env: BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarade55782018-07-01 21:12:55 +020046 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010047 - os: osx
Bram Moolenaara3828682017-03-05 14:56:07 +010048 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 +020049 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 Moolenaarade55782018-07-01 21:12:55 +020050 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010051 - os: linux
Bram Moolenaar02113ed2017-08-06 17:06:24 +020052 compiler: clang
Bram Moolenaara3828682017-03-05 14:56:07 +010053 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 +020054 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 Moolenaarade55782018-07-01 21:12:55 +020055 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020056 - os: linux
57 compiler: clang
58 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
59 - os: linux
60 compiler: clang
61 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
62 - os: linux
63 env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarade55782018-07-01 21:12:55 +020064 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020065
Bram Moolenaarc1d20992015-09-25 20:30:58 +020066branches:
67 except:
68 - /^v[0-9]/
69
Bram Moolenaar0600f352015-09-15 19:18:18 +020070addons:
71 apt:
72 packages:
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010073 - autoconf
Bram Moolenaar9e272172017-11-17 21:25:08 +010074 - clang
Bram Moolenaar0600f352015-09-15 19:18:18 +020075 - lcov
76 - libperl-dev
77 - python-dev
78 - python3-dev
Bram Moolenaarcb25d182017-07-27 21:29:31 +020079 - liblua5.2-dev
80 - lua5.2
Bram Moolenaar02113ed2017-08-06 17:06:24 +020081 - ruby-dev
Bram Moolenaarade55782018-07-01 21:12:55 +020082 - tcl-dev
Bram Moolenaar47247282016-08-02 22:36:02 +020083 - cscope
Bram Moolenaar02113ed2017-08-06 17:06:24 +020084 - libgtk2.0-dev
Bram Moolenaar2339fa32019-01-28 22:59:36 +010085 homebrew:
86 packages:
87 - lua
88 update: true
Bram Moolenaar0600f352015-09-15 19:18:18 +020089
90before_install:
Bram Moolenaar02113ed2017-08-06 17:06:24 +020091 - rvm reset
92 # Remove /opt/python/3.x.x/bin from $PATH for using system python3.
93 # ("pyenv global system" doesn't seem to work.)
94 - 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
95 - if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
Bram Moolenaar4f7090b2017-01-26 21:24:02 +010096 # needed for https support for coveralls
97 # building cffi only works with gcc, not with clang
98 - if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
Bram Moolenaarb20617b2016-07-30 17:41:49 +020099 # Lua is not installed on Travis OSX
Bram Moolenaar2339fa32019-01-28 22:59:36 +0100100 - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export LUA_PREFIX=/usr/local; fi
Bram Moolenaar02113ed2017-08-06 17:06:24 +0200101 # Use llvm-cov instead of gcov when compiler is clang.
102 - 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 +0200103
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +0100104# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
Bram Moolenaare3505df2016-11-11 21:57:45 +0100105before_script:
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +0100106 - 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 +0100107
Bram Moolenaar0600f352015-09-15 19:18:18 +0200108script:
109 - NPROC=$(getconf _NPROCESSORS_ONLN)
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +0100110 - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
Bram Moolenaar1a9f9472016-07-16 21:18:34 +0200111 - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
Bram Moolenaar87776a12016-07-16 21:37:49 +0200112 - (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 +0200113 # Show Vim version and also if_xx versions.
114 - 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 +0200115 - make $SHADOWOPT $TEST
Bram Moolenaar9e272172017-11-17 21:25:08 +0100116 - 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 +0100117 - if [ -n "$err" ]; then exit 1; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200118
119after_success:
Bram Moolenaare6677792018-12-18 22:04:05 +0100120 - if [ "$COVERAGE" = "yes" ]; then ~/.local/bin/coveralls -b ${SRCDIR} -x .xs -e ${SRCDIR}/if_perl.c -e ${SRCDIR}/xxd -e ${SRCDIR}/libvterm --encodings utf-8 latin-1 EUC-KR; fi
Bram Moolenaar1ed00332018-04-11 21:03:08 +0200121 - if [ "$COVERAGE" = "yes" ]; then cd ${SRCDIR} && bash <(curl -s https://codecov.io/bash) ; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200122
123# vim:set sts=2 sw=2 tw=0 et: