blob: 17f04180753bda8a14693b5a066a67515bf21a3a [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
33matrix:
34 exclude:
35 - os: osx
36 env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
37 - os: osx
38 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
39 - os: osx
40 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
41 - os: osx
42 env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
43 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaar1e076332017-01-26 20:11:12 +010044 - os: osx
Bram Moolenaara3828682017-03-05 14:56:07 +010045 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
46 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010047 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
48 - os: linux
49 compiler: gcc
Bram Moolenaara3828682017-03-05 14:56:07 +010050 env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
51 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
Bram Moolenaar1e076332017-01-26 20:11:12 +010052 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
Bram Moolenaarb20617b2016-07-30 17:41:49 +020053 - os: linux
54 compiler: clang
55 env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
56 - os: linux
57 compiler: clang
58 env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
59 - os: linux
60 env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
61 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
62
Bram Moolenaarc1d20992015-09-25 20:30:58 +020063branches:
64 except:
65 - /^v[0-9]/
66
Bram Moolenaar0600f352015-09-15 19:18:18 +020067addons:
68 apt:
69 packages:
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010070 - autoconf
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 Moolenaar47247282016-08-02 22:36:02 +020077 - cscope
Bram Moolenaar0600f352015-09-15 19:18:18 +020078
79before_install:
Bram Moolenaard973bcb2017-07-28 18:01:58 +020080 - if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls==0.3.12; fi
Bram Moolenaar4f7090b2017-01-26 21:24:02 +010081 # needed for https support for coveralls
82 # building cffi only works with gcc, not with clang
83 - if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
Bram Moolenaarb20617b2016-07-30 17:41:49 +020084 # Lua is not installed on Travis OSX
85 - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +020086
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010087# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
Bram Moolenaare3505df2016-11-11 21:57:45 +010088before_script:
Bram Moolenaarb6be3ea2016-11-12 18:30:39 +010089 - 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 +010090
Bram Moolenaar0600f352015-09-15 19:18:18 +020091script:
92 - NPROC=$(getconf _NPROCESSORS_ONLN)
Bram Moolenaar7b5f0a12015-12-30 17:40:43 +010093 - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
Bram Moolenaar1a9f9472016-07-16 21:18:34 +020094 - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
Bram Moolenaar87776a12016-07-16 21:37:49 +020095 - (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
96 - if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
Bram Moolenaara3828682017-03-05 14:56:07 +010097 - 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 +020098 - make $SHADOWOPT $TEST
Bram Moolenaara3828682017-03-05 14:56:07 +010099 - if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
100 - if [ -n "$err" ]; then exit 1; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200101
102after_success:
Bram Moolenaar87776a12016-07-16 21:37:49 +0200103 - 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 +0100104 - if [ "$COVERAGE" = "yes" ]; then cd $SRCDIR && bash <(curl -s https://codecov.io/bash) ; fi
Bram Moolenaar0600f352015-09-15 19:18:18 +0200105
106# vim:set sts=2 sw=2 tw=0 et: