blob: a6db9e7f696a5d4588e482b8c4dd0acd1efbe079 [file] [log] [blame]
Bram Moolenaar0600f352015-09-15 19:18:18 +02001language: c
Bram Moolenaar59ee05b2017-07-28 12:22:55 +02002# trusty still has a few problems, use precise until they are solved.
3dist: precise
Bram Moolenaar0600f352015-09-15 19:18:18 +02004
Bram Moolenaarb20617b2016-07-30 17:41:49 +02005os:
6 - osx
7 - linux
8
Bram Moolenaar0600f352015-09-15 19:18:18 +02009compiler:
10 - clang
11 - gcc
12
13env:
Bram Moolenaar2cb70a22016-07-16 21:58:01 +020014 - 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 +020015 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020016 - 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 +020017 - BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
18 - BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
19 - BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
Bram Moolenaarb20617b2016-07-30 17:41:49 +020020 # Mac OSX build
21 - BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
22 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010023 # ASAN build
Bram Moolenaara3828682017-03-05 14:56:07 +010024 - BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
25 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010026 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar0600f352015-09-15 19:18:18 +020027
28sudo: false
29
Bram Moolenaar1e076332017-01-26 20:11:12 +010030# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
Bram Moolenaarb20617b2016-07-30 17:41:49 +020031# exclude some builds on mac os x and linux
32# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
Bram Moolenaar38ed1f52017-07-28 13:41:22 +020033# Note: coverage currently does not work with clang, "setup.py install for cryptography" fails
Bram Moolenaarb20617b2016-07-30 17:41:49 +020034matrix:
35 exclude:
36 - os: osx
37 env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
38 - os: osx
39 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
40 - os: osx
41 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
42 - os: osx
43 env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
44 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010045 - os: osx
Bram Moolenaara3828682017-03-05 14:56:07 +010046 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
47 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010048 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
49 - os: linux
50 compiler: gcc
Bram Moolenaara3828682017-03-05 14:56:07 +010051 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
52 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010053 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020054 - os: linux
55 compiler: clang
Bram Moolenaar38ed1f52017-07-28 13:41:22 +020056 env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
57 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
58 - os: linux
59 compiler: clang
Bram Moolenaarb20617b2016-07-30 17:41:49 +020060 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
61 - os: linux
62 compiler: clang
63 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
64 - os: linux
65 env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
66 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
67
Bram Moolenaarc1d20992015-09-25 20:30:58 +020068branches:
69 except:
70 - /^v[0-9]/
71
Bram Moolenaar0600f352015-09-15 19:18:18 +020072addons:
73 apt:
74 packages:
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010075 - autoconf
Bram Moolenaar0600f352015-09-15 19:18:18 +020076 - lcov
77 - libperl-dev
78 - python-dev
79 - python3-dev
Bram Moolenaarcb25d182017-07-27 21:29:31 +020080 - liblua5.2-dev
81 - lua5.2
Bram Moolenaar47247282016-08-02 22:36:02 +020082 - cscope
Bram Moolenaar0600f352015-09-15 19:18:18 +020083
84before_install:
Bram Moolenaar4f7090b2017-01-26 21:24:02 +010085 - if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
86 # needed for https support for coveralls
87 # building cffi only works with gcc, not with clang
88 - if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
Bram Moolenaarb20617b2016-07-30 17:41:49 +020089 # Lua is not installed on Travis OSX
90 - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +020091
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010092# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
Bram Moolenaare3505df2016-11-11 21:57:45 +010093before_script:
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010094 - 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 +010095
Bram Moolenaar0600f352015-09-15 19:18:18 +020096script:
97 - NPROC=$(getconf _NPROCESSORS_ONLN)
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010098 - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
Bram Moolenaar1a9f9472016-07-16 21:18:34 +020099 - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
Bram Moolenaar87776a12016-07-16 21:37:49 +0200100 - (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
101 - if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
Bram Moolenaara3828682017-03-05 14:56:07 +0100102 - 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 +0200103 - make $SHADOWOPT $TEST
Bram Moolenaara3828682017-03-05 14:56:07 +0100104 - if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
105 - if [ -n "$err" ]; then exit 1; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200106
107after_success:
Bram Moolenaar87776a12016-07-16 21:37:49 +0200108 - 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 +0100109 - if [ "$COVERAGE" = "yes" ]; then cd $SRCDIR && bash <(curl -s https://codecov.io/bash) ; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200110
111# vim:set sts=2 sw=2 tw=0 et: