view .travis.yml @ 16150:b23048205589 v8.1.1080

patch 8.1.1080: when a screendump test fails, moving the file is a hassle commit https://github.com/vim/vim/commit/ef7f0e367eeaf6fb31b1caa0e3de1a4b07e86af3 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 30 15:59:51 2019 +0100 patch 8.1.1080: when a screendump test fails, moving the file is a hassle Problem: When a screendump test fails, moving the file is a hassle. Solution: Instead of appending ".failed" to the file name, keep the same file name but put the screendump in the "failed" directory. Then the file name only needs to be typed once when moving a screendump.
author Bram Moolenaar <Bram@vim.org>
date Sat, 30 Mar 2019 16:00:06 +0100
parents bec05be6858a
children f80c1a4be2c5
line wrap: on
line source

language: c
dist: trusty

os:
  - osx
  - linux

compiler:
  - clang
  - gcc

env:
  - &tiny-nogui
    BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
  - &tiny
    BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
  - &asan # ASAN build
    BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
    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"
    "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
  - &linux-huge
    BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
    "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
  - &unittests
    BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
  - &normal
    BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
  - &small
    BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
  - &osx-huge # Mac OSX build
    BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
    "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"

sudo: false

# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
# exclude some builds on mac os x and linux
# on mac os x "tiny" is always without GUI
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
matrix:
  exclude:
    - os: osx
      env: *tiny
    - os: osx
      env: *normal
    - os: osx
      env: *unittests
    - os: osx
      env: *small
    - os: osx
      env: *linux-huge
    - os: osx
      env: *asan
    - os: linux
      compiler: clang
      env: *asan
    - os: linux
      compiler: clang
      env: *unittests
    - os: linux
      compiler: clang
      env: *small
    - os: linux
      env: *osx-huge

branches:
  except:
    - /^v[0-9]/

addons:
  apt:
    packages:
      - autoconf
      - clang
      - lcov
      - libperl-dev
      - python-dev
      - python3-dev
      - liblua5.2-dev
      - lua5.2
      - ruby-dev
      - tcl-dev
      - cscope
      - libgtk2.0-dev
  homebrew:
    packages:
      - lua
    update: true

before_install:
  - rvm reset
  # Remove /opt/python/3.x.x/bin from $PATH for using system python3.
  # ("pyenv global system" doesn't seem to work.)
  - |
    if [[ "${TRAVIS_OS_NAME}" = "linux" ]] && [[ "$(which python3)" =~ ^/opt/python/ ]]; then
      export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/})
    fi
  - |
    if [[ "${COVERAGE}" = "yes" ]]; then
      pip install --user cpp-coveralls
    fi
  # needed for https support for coveralls
  # building cffi only works with gcc, not with clang
  - |
    if [[ "${COVERAGE}" = "yes" ]]; then
      CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1
    fi
  # Lua is not installed on Travis OSX
  - |
    if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
      export LUA_PREFIX=/usr/local
    fi
  # Use llvm-cov instead of gcov when compiler is clang.
  - |
    if [[ "${TRAVIS_OS_NAME}" = "linux" ]] && [[ "${CC}" = "clang" ]]; then
      ln -sf "$(which llvm-cov)" /home/travis/bin/gcov
    fi

before_script:
  # Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
  - |
    if [[ "${TRAVIS_OS_NAME}" = "linux" ]]; then
      export DISPLAY=:99.0
      sh -e /etc/init.d/xvfb start && sleep 3
    fi

script:
  - NPROC=$(getconf _NPROCESSORS_ONLN)
  - |
    if [[ "${CHECK_AUTOCONF}" = "yes" ]] && [[ "${CC}" = "gcc" ]]; then
      make -C src autoconf
    fi
  - |
    if [[ -n "${SHADOWOPT}" ]]; then
      make -C src shadow
    fi
  - |
    (
    cd "${SRCDIR}" \
      && ./configure --with-features=${FEATURES} ${CONFOPT} --enable-fail-if-missing
    ) && if [[ "${BUILD}" = "yes" ]]; then
      make ${SHADOWOPT} -j${NPROC}
    fi
  # Show Vim version and also if_xx versions.
  - |
    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
  - make ${SHADOWOPT} ${TEST}
  - |
    if [[ -n "${ASAN_OPTIONS}" ]]; then
      while read log; do
        asan_symbolize < "${log}"
      done < <(find . -type f -name 'asan.*' -size +0)
      [[ -z "${log}" ]] # exit 1 if there are ASAN logs
    fi

after_success:
  - |
    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
  - |
    if [[ "${COVERAGE}" = "yes" ]]; then
      (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
    fi

# vim:set sts=2 sw=2 tw=0 et: