From 6272ed319462650e008f79cfab3aef233dc849b7 Mon Sep 17 00:00:00 2001 From: Lars Schneider Date: Tue, 26 Jan 2016 10:53:42 +0100 Subject: [PATCH 1/2] travis-ci: run previously failed tests first, then slowest to fastest The Travis-CI machines are in a clean state in the beginning of every run (transient by default). Use the Travis-CI cache feature to make the prove state persistent across consecutive Travis-CI runs on the same branch. This allows to run previously failed tests first and run remaining tests in slowest to fastest order. As a result it is less likely that Travis-CI needs to wait for a single test at the end which speeds up the test suite execution by ~2 min. Travis-CI can only cache entire directories. Prove stores the .prove file always in the t/ directory but we don't want to cache the entire t/ directory. Therefore we create a symlink from $HOME/travis-cache/.prove to t/.prove and cache the $HOME/travis-cache directory. Unfortunately the cache feature is only available (for free) on the Travis-CI Linux environment. Suggested-by: Jeff King Signed-off-by: Lars Schneider Signed-off-by: Junio C Hamano --- .travis.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c3bf9c6d4..610881e04 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,9 @@ language: c +cache: + directories: + - $HOME/travis-cache + os: - linux - osx @@ -18,7 +22,7 @@ env: - P4_VERSION="15.2" - GIT_LFS_VERSION="1.1.0" - DEFAULT_TEST_TARGET=prove - - GIT_PROVE_OPTS="--timer --jobs 3" + - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save" - GIT_TEST_OPTS="--verbose --tee" - CFLAGS="-g -O2 -Wall -Werror" - GIT_TEST_CLONE_2GB=YesPlease @@ -67,6 +71,8 @@ before_install: p4 -V | grep Rev.; echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)"; git-lfs version; + mkdir -p $HOME/travis-cache; + ln -s $HOME/travis-cache/.prove t/.prove; before_script: make --jobs=2 From ce59dffb34190e780be2fa9f449f842cadee9753 Mon Sep 17 00:00:00 2001 From: Lars Schneider Date: Tue, 26 Jan 2016 10:53:43 +0100 Subject: [PATCH 2/2] travis-ci: explicity use container-based infrastructure Set `sudo: false` to explicitly use the (faster) container-based infrastructure for the Travis-CI Linux build. More info: https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments Signed-off-by: Lars Schneider Signed-off-by: Junio C Hamano --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 610881e04..f8b73ec3d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ language: c +sudo: false + cache: directories: - $HOME/travis-cache