blob: a0b8d2140b5bf5f393f5eafc2eb31464350272dc [file] [log] [blame]
Bram Moolenaar0600f352015-09-15 19:18:18 +02001language: c
2
Bram Moolenaarb20617b2016-07-30 17:41:49 +02003os:
4 - osx
5 - linux
6
Bram Moolenaar0600f352015-09-15 19:18:18 +02007compiler:
8 - clang
9 - gcc
10
11env:
Bram Moolenaar2cb70a22016-07-16 21:58:01 +020012 - 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 +020013 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020014 - 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 +020015 - BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
16 - BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
17 - BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarb20617b2016-07-30 17:41:49 +020018 # Mac OSX build
19 - BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
20 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010021 # ASAN build
Bram Moolenaara3828682017-03-05 14:56:07 +010022 - BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
23 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010024 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar0600f352015-09-15 19:18:18 +020025
26sudo: false
27
Bram Moolenaar1e076332017-01-26 20:11:12 +010028# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
Bram Moolenaarb20617b2016-07-30 17:41:49 +020029# exclude some builds on mac os x and linux
30# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
31matrix:
32 exclude:
33 - os: osx
34 env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
35 - os: osx
36 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
37 - os: osx
38 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
39 - os: osx
40 env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
41 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010042 - os: osx
Bram Moolenaara3828682017-03-05 14:56:07 +010043 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
44 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010045 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
46 - os: linux
47 compiler: gcc
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"
49 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010050 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020051 - os: linux
52 compiler: clang
53 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
54 - os: linux
55 compiler: clang
56 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
57 - os: linux
58 env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
59 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
60
Bram Moolenaarc1d20992015-09-25 20:30:58 +020061branches:
62 except:
63 - /^v[0-9]/
64
Bram Moolenaar0600f352015-09-15 19:18:18 +020065addons:
66 apt:
67 packages:
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010068 - autoconf
Bram Moolenaar0600f352015-09-15 19:18:18 +020069 - lcov
70 - libperl-dev
71 - python-dev
72 - python3-dev
73 - liblua5.1-0-dev
74 - lua5.1
Bram Moolenaar47247282016-08-02 22:36:02 +020075 - cscope
Bram Moolenaar0600f352015-09-15 19:18:18 +020076
77before_install:
Bram Moolenaar4f7090b2017-01-26 21:24:02 +010078 - if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
79 # needed for https support for coveralls
80 # building cffi only works with gcc, not with clang
81 - if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
Bram Moolenaarb20617b2016-07-30 17:41:49 +020082 # Lua is not installed on Travis OSX
83 - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +020084
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010085# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
Bram Moolenaare3505df2016-11-11 21:57:45 +010086before_script:
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010087 - 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 +010088
Bram Moolenaar0600f352015-09-15 19:18:18 +020089script:
90 - NPROC=$(getconf _NPROCESSORS_ONLN)
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010091 - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
Bram Moolenaar1a9f9472016-07-16 21:18:34 +020092 - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
Bram Moolenaar87776a12016-07-16 21:37:49 +020093 - (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
94 - if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
Bram Moolenaara3828682017-03-05 14:56:07 +010095 - if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
Bram Moolenaar1a9f9472016-07-16 21:18:34 +020096 - make $SHADOWOPT $TEST
Bram Moolenaara3828682017-03-05 14:56:07 +010097 - if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
98 - if [ -n "$err" ]; then exit 1; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +020099
100after_success:
Bram Moolenaar87776a12016-07-16 21:37:49 +0200101 - 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 Moolenaard722fd72017-03-25 17:46:59 +0100102 - if [ "$COVERAGE" = "yes" ]; then cd $SRCDIR && bash <(curl -s https://codecov.io/bash) ; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200103
104# vim:set sts=2 sw=2 tw=0 et: