mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
392ec5a43f
The env var is being set to the default value, as of ccache 3.3, which is available in Zesty and newer. All of our CI is using Bionic, so this is already available.
260 lines
7.5 KiB
YAML
260 lines
7.5 KiB
YAML
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"
|
|
|
|
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:
|
|
- stage: baseline
|
|
name: clang-asan
|
|
os: linux
|
|
compiler: clang-11
|
|
# Use Lua so that ASAN can test our embedded Lua support. 8fec4d53d0f6
|
|
env:
|
|
- CLANG_SANITIZER=ASAN_UBSAN
|
|
- CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
|
|
- SYMBOLIZER=asan_symbolize-11
|
|
- *common-job-env
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main'
|
|
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
|
packages:
|
|
- *common-apt-packages
|
|
- clang-11
|
|
- 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
|
|
- if: branch = master AND commit_message !~ /\[skip.lint\]/
|
|
name: lint
|
|
os: linux
|
|
env:
|
|
- CI_TARGET=lint
|
|
- *common-job-env
|
|
|
|
- stage: second stage
|
|
name: "macOS: clang"
|
|
os: osx
|
|
compiler: clang
|
|
osx_image: xcode10.2 # macOS 10.14
|
|
env:
|
|
- *common-job-env
|
|
- 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"
|
|
# Minimum required CMake.
|
|
- CMAKE_URL=https://cmake.org/files/v2.8/cmake-2.8.12-Linux-i386.sh
|
|
- *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
|
|
- name: clang-tsan
|
|
os: linux
|
|
compiler: clang
|
|
env:
|
|
- CLANG_SANITIZER=TSAN
|
|
- *common-job-env
|
|
- 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
|