123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- dist: bionic
- language: c
- env:
- global:
- # Encrypted environment variables, see
- # http://docs.travis-ci.com/user/encryption-keys/
- #
- # SNAP_SECRET_KEY: generated by:
- # travis encrypt SNAP_SECRET_KEY=xx --add
- # https://github.com/neovim/neovim/pull/11428
- # snapcraft key expires after 1 year. Steps to refresh it:
- # 1. snapcraft enable-ci travis --refresh
- # 2. mv .snapcraft/travis_snapcraft.cfg ci/snap/travis_snapcraft.cfg
- # 3. Copy after_success command to ci/snap/deploy.sh from .travis.yml
- # 4. Undo changes to .travis.yml
- - secure: hd0qn2u8ABbJg5Bx4pBRcUQbKYFmcSHoecyHIPTCnGJT+NI41Bvm/IkN/N5DhBF+LbD3Q2nmR/dzI5H/dqS7RxMFvEx1DuFLendFHHX3MYf0AuKpXYY3gwgMTmqx8p/v6srlU7RBGWNGzHCWqksAem+EIWCe3I7WvfdKo1/DV/Y=
- - PATH="$HOME/.local/bin:$PATH"
- # Set "false" to force rebuild of third-party dependencies.
- - CACHE_ENABLE=true
- # Build directory for Neovim.
- - BUILD_DIR="$TRAVIS_BUILD_DIR/build"
- # Build directory for third-party dependencies.
- - DEPS_BUILD_DIR="$HOME/nvim-deps"
- # Install directory for Neovim.
- - INSTALL_PREFIX="$HOME/nvim-install"
- # Log directory for Clang sanitizers and Valgrind.
- - LOG_DIR="$BUILD_DIR/log"
- # Nvim log file.
- - NVIM_LOG_FILE="$BUILD_DIR/.nvimlog"
- # Default CMake flags.
- - CMAKE_FLAGS="-DCI_BUILD=ON
- -DCMAKE_BUILD_TYPE=Debug
- -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX
- -DBUSTED_OUTPUT_TYPE=nvim
- -DDEPS_PREFIX=$DEPS_BUILD_DIR/usr
- -DMIN_LOG_LEVEL=3"
- - DEPS_CMAKE_FLAGS="-DUSE_BUNDLED_GPERF=OFF"
- # Environment variables for Clang sanitizers.
- - ASAN_OPTIONS="detect_leaks=1:check_initialization_order=1:log_path=$LOG_DIR/asan"
- - TSAN_OPTIONS="log_path=$LOG_DIR/tsan"
- - UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan"
- # Environment variables for Valgrind.
- - VALGRIND_LOG="$LOG_DIR/valgrind-%p.log"
- - CACHE_NVIM_DEPS_DIR="$HOME/.cache/nvim-deps"
- # If this file exists, the cache is valid (compile was successful).
- - CACHE_MARKER="$CACHE_NVIM_DEPS_DIR/.ci_cache_marker"
- # default target name for functional tests
- - FUNCTIONALTEST=functionaltest
- - CI_TARGET=tests
- # Environment variables for ccache
- - CCACHE_COMPRESS=1
- - CCACHE_SLOPPINESS=time_macros,file_macro
- - CCACHE_BASEDIR="$TRAVIS_BUILD_DIR"
- - CI_OS_NAME="$TRAVIS_OS_NAME"
- anchors:
- envs: &common-job-env
- # Do not fall back to cache for "master" for PR on "release" branch:
- # adds the target branch to the cache key.
- FOR_TRAVIS_CACHE=v1-$TRAVIS_BRANCH
- addons:
- apt:
- packages: &common-apt-packages
- - apport
- - autoconf
- - automake
- - build-essential
- - clang
- - cmake
- - cpanminus
- - cscope
- - gcc-multilib
- - gdb
- - gperf
- - language-pack-tr
- - libtool-bin
- - locales
- - ninja-build
- - pkg-config
- - unzip
- - valgrind
- - xclip
- homebrew:
- update: true
- casks:
- - powershell
- packages:
- - ccache
- - cpanminus
- - ninja
- - perl
- jobs:
- include:
- - name: gcc-coverage (gcc 9)
- os: linux
- compiler: gcc-9
- env:
- - GCOV=gcov-9
- - CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
- - GCOV_ERROR_FILE="/tmp/libgcov-errors.log"
- - USE_LUACOV=1
- - BUSTED_ARGS="--coverage"
- - *common-job-env
- addons:
- snaps:
- - name: powershell
- confinement: classic
- apt:
- sources:
- - sourceline: 'ppa:ubuntu-toolchain-r/test'
- packages:
- - *common-apt-packages
- - gcc-9
- - name: gcc-functionaltest-lua
- os: linux
- compiler: gcc
- env:
- - FUNCTIONALTEST=functionaltest-lua
- - CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- - DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -DUSE_BUNDLED_LUAJIT=OFF"
- - *common-job-env
- - name: gcc-32bit
- os: linux
- # Travis creates a cache per compiler. Set a different value here to
- # store 32-bit dependencies in a separate cache.
- compiler: gcc
- env:
- - BUILD_32BIT=ON
- - CMAKE_FLAGS="$CMAKE_FLAGS -m32 -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake"
- - DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -m32 -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake"
- - *common-job-env
- - name: big-endian
- os: linux
- arch: s390x
- compiler: gcc
- env:
- - FUNCTIONALTEST=functionaltest-lua
- - CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- - DEPS_CMAKE_FLAGS="$DEPS_CMAKE_FLAGS -DUSE_BUNDLED_LUAJIT=OFF"
- - *common-job-env
- addons:
- apt:
- packages:
- - *common-apt-packages
- - gettext
- - python-pip
- - python3-pip
- - python-setuptools
- - python3-setuptools
- - python-dev
- - python3-dev
- - if: type != pull_request
- name: snap
- os: linux
- env:
- - LC_ALL: C.UTF-8
- - LANG: C.UTF-8
- - SNAPCRAFT_ENABLE_SILENT_REPORT: y
- - SNAPCRAFT_ENABLE_DEVELOPER_DEBUG: y
- - SNAPCRAFT_BUILD_ENVIRONMENT: lxd
- addons:
- snaps:
- - name: snapcraft
- channel: stable
- classic: true
- - name: http
- - name: transfer
- - name: lxd
- channel: stable
- # Override default before_install, before_cache.
- before_install: /bin/true
- before_cache: /bin/true
- install: ci/snap/install.sh
- before_script: echo "Building snap..."
- script: ci/snap/script.sh
- after_success: ci/snap/after_success.sh
- deploy:
- skip_cleanup: true
- provider: script
- script: ci/snap/deploy.sh
- on:
- branch: master
- allow_failures:
- - env:
- - LC_ALL: C.UTF-8
- - LANG: C.UTF-8
- - SNAPCRAFT_ENABLE_SILENT_REPORT: y
- - SNAPCRAFT_ENABLE_DEVELOPER_DEBUG: y
- - SNAPCRAFT_BUILD_ENVIRONMENT: lxd
- fast_finish: true
- before_install: ci/before_install.sh
- install: ci/install.sh
- before_script: ci/before_script.sh
- script: ci/script.sh
- before_cache: ci/before_cache.sh
- branches:
- only:
- - master
- - /^release-\d+\.\d+$/
- cache:
- apt: true
- ccache: true
- directories:
- - "$CACHE_NVIM_DEPS_DIR"
- git:
- quiet: true
- notifications:
- webhooks:
- urls:
- - https://webhooks.gitter.im/e/b5c38c99f9677aa3d031
|