Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 1 | language: c |
| 2 | |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 3 | os: |
| 4 | - osx |
| 5 | - linux |
| 6 | |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 7 | compiler: |
| 8 | - clang |
| 9 | - gcc |
| 10 | |
| 11 | env: |
Bram Moolenaar | 2cb70a2 | 2016-07-16 21:58:01 +0200 | [diff] [blame] | 12 | - BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 13 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 14 | - BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes |
Bram Moolenaar | 1a9f947 | 2016-07-16 21:18:34 +0200 | [diff] [blame] | 15 | - 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 Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 18 | # 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 Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 21 | # ASAN build |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 22 | - 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 Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 24 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 25 | |
| 26 | sudo: false |
| 27 | |
Bram Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 28 | # instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env), |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 29 | # exclude some builds on mac os x and linux |
| 30 | # linux: 2*compiler + 5*env + mac: 2*compiler + 2*env |
| 31 | matrix: |
| 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 Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 42 | - os: osx |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 43 | 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 Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 45 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
| 46 | - os: linux |
| 47 | compiler: gcc |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 48 | 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 Moolenaar | 1e07633 | 2017-01-26 20:11:12 +0100 | [diff] [blame] | 50 | "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'" |
Bram Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 51 | - 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 Moolenaar | c1d2099 | 2015-09-25 20:30:58 +0200 | [diff] [blame] | 61 | branches: |
| 62 | except: |
| 63 | - /^v[0-9]/ |
| 64 | |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 65 | addons: |
| 66 | apt: |
| 67 | packages: |
Bram Moolenaar | 7b5f0a1 | 2015-12-30 17:40:43 +0100 | [diff] [blame] | 68 | - autoconf |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 69 | - lcov |
| 70 | - libperl-dev |
| 71 | - python-dev |
| 72 | - python3-dev |
| 73 | - liblua5.1-0-dev |
| 74 | - lua5.1 |
Bram Moolenaar | 4724728 | 2016-08-02 22:36:02 +0200 | [diff] [blame] | 75 | - cscope |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 76 | |
| 77 | before_install: |
Bram Moolenaar | 4f7090b | 2017-01-26 21:24:02 +0100 | [diff] [blame] | 78 | - 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 Moolenaar | b20617b | 2016-07-30 17:41:49 +0200 | [diff] [blame] | 82 | # Lua is not installed on Travis OSX |
| 83 | - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 84 | |
Bram Moolenaar | b6be3ea | 2016-11-12 18:30:39 +0100 | [diff] [blame] | 85 | # Start virtual framebuffer to be able to test the GUI. Does not work on OS X. |
Bram Moolenaar | e3505df | 2016-11-11 21:57:45 +0100 | [diff] [blame] | 86 | before_script: |
Bram Moolenaar | b6be3ea | 2016-11-12 18:30:39 +0100 | [diff] [blame] | 87 | - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi |
Bram Moolenaar | e3505df | 2016-11-11 21:57:45 +0100 | [diff] [blame] | 88 | |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 89 | script: |
| 90 | - NPROC=$(getconf _NPROCESSORS_ONLN) |
Bram Moolenaar | 7b5f0a1 | 2015-12-30 17:40:43 +0100 | [diff] [blame] | 91 | - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi |
Bram Moolenaar | 1a9f947 | 2016-07-16 21:18:34 +0200 | [diff] [blame] | 92 | - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi |
Bram Moolenaar | 87776a1 | 2016-07-16 21:37:49 +0200 | [diff] [blame] | 93 | - (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 Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 95 | - 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 Moolenaar | 1a9f947 | 2016-07-16 21:18:34 +0200 | [diff] [blame] | 96 | - make $SHADOWOPT $TEST |
Bram Moolenaar | a382868 | 2017-03-05 14:56:07 +0100 | [diff] [blame] | 97 | - 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 Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 99 | |
| 100 | after_success: |
Bram Moolenaar | 87776a1 | 2016-07-16 21:37:49 +0200 | [diff] [blame] | 101 | - 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 Moolenaar | d722fd7 | 2017-03-25 17:46:59 +0100 | [diff] [blame] | 102 | - if [ "$COVERAGE" = "yes" ]; then cd $SRCDIR && bash <(curl -s https://codecov.io/bash) ; fi |
Bram Moolenaar | 0600f35 | 2015-09-15 19:18:18 +0200 | [diff] [blame] | 103 | |
| 104 | # vim:set sts=2 sw=2 tw=0 et: |