aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2017-05-14 00:46:30 -0400
committerJustin M. Keyes <justinkz@gmail.com>2017-05-14 06:46:30 +0200
commit6e4e70f51b8a889d38fe5d954d9ac817750424c3 (patch)
treefadf803c09f9642013e3347c1da308fd6f62d745
parent17531ed0825c1bf5e24e78ae94020fb08ca06013 (diff)
downloadrneovim-6e4e70f51b8a889d38fe5d954d9ac817750424c3.tar.gz
rneovim-6e4e70f51b8a889d38fe5d954d9ac817750424c3.tar.bz2
rneovim-6e4e70f51b8a889d38fe5d954d9ac817750424c3.zip
ci: Enable staged builds (#6739)
This should better allow distributing the load among PRs, while getting critical feedback to the submitter sooner. First stage runs the ASAN/UBSAN/TSAN since any failures in those are gating issues. Second stage runs the rest of the normal builds in parallel. Remaining stages provide lower priority feedback. The lint build runs fast locally, so it's better to run that locally than wait on CI. The coverage build is pretty fickle, so it is only run once all other jobs are green.
-rw-r--r--.travis.yml32
1 files changed, 18 insertions, 14 deletions
diff --git a/.travis.yml b/.travis.yml
index 74e4b3f76e..8ca6f58fec 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -48,14 +48,19 @@ env:
- FUNCTIONALTEST=functionaltest
- CI_TARGET=tests
-matrix:
+jobs:
include:
+ - stage: sanitizers
+ os: linux
+ compiler: clang-3.9
+ env: >
+ CLANG_SANITIZER=ASAN_UBSAN
+ CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- os: linux
- env: CI_TARGET=lint
- - os: linux
- compiler: gcc-5
- env: GCOV=gcov-5 CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
- - os: linux
+ compiler: clang-3.9
+ env: CLANG_SANITIZER=TSAN
+ - stage: normal builds
+ os: linux
compiler: gcc-5
env: FUNCTIONALTEST=functionaltest-lua
- os: linux
@@ -64,20 +69,19 @@ matrix:
# dependencies in a separate cache.
compiler: gcc-5 -m32
env: BUILD_32BIT=ON
- - os: linux
- compiler: clang-3.9
- env: >
- CLANG_SANITIZER=ASAN_UBSAN
- CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- - os: linux
- compiler: clang-3.9
- env: CLANG_SANITIZER=TSAN
- os: osx
compiler: clang
osx_image: xcode7.3 # macOS 10.11
- os: osx
compiler: gcc-4.9
osx_image: xcode7.3 # macOS 10.11
+ - stage: lint
+ os: linux
+ env: CI_TARGET=lint
+ - stage: coverage
+ os: linux
+ compiler: gcc-5
+ env: GCOV=gcov-5 CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
allow_failures:
- env: GCOV=gcov-5 CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
fast_finish: true