git/.travis.yml
Lars Schneider 3ae72a3aca travis-ci: setup "prove cache" in "script" step
The command that made the "prove cache" persistent across builds was
executed in the "before_install" step. Consequently, every job that
wanted to make use of the cache had to run this step.

The "prove cache" is only used in the "script" step for the
"make test" command. Therefore, we should configure the "prove cache"
in this step.

This change is useful for a subsequent patch that adds a job which does
not need the "before_install" step but wants to run the "script" step to
execute the tests.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-11 18:44:54 +09:00

163 lines
4.4 KiB
YAML

language: c
sudo: false
cache:
directories:
- $HOME/travis-cache
os:
- linux
- osx
compiler:
- clang
- gcc
addons:
apt:
packages:
- language-pack-is
- git-svn
- apache2
env:
global:
- DEVELOPER=1
# The Linux build installs the defined dependency versions below.
# The OS X build installs the latest available versions. Keep that
# in mind when you encounter a broken OS X build!
- LINUX_P4_VERSION="16.2"
- LINUX_GIT_LFS_VERSION="1.5.2"
- DEFAULT_TEST_TARGET=prove
- GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
- GIT_TEST_OPTS="--verbose-log"
- GIT_TEST_CLONE_2GB=YesPlease
# t9810 occasionally fails on Travis CI OS X
# t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
- GIT_SKIP_TESTS="t9810 t9816"
matrix:
include:
- env: Windows
os: linux
compiler:
addons:
before_install:
before_script:
script:
- >
test "$TRAVIS_REPO_SLUG" != "git/git" ||
ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
after_failure:
- env: Linux32
os: linux
services:
- docker
before_install:
- docker pull daald/ubuntu32:xenial
before_script:
script:
- >
docker run
--interactive
--env DEVELOPER
--env DEFAULT_TEST_TARGET
--env GIT_PROVE_OPTS
--env GIT_TEST_OPTS
--env GIT_TEST_CLONE_2GB
--volume "${PWD}:/usr/src/git"
daald/ubuntu32:xenial
/usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
# Use the following command to debug the docker build locally:
# $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
# root@container:/# /usr/src/git/ci/run-linux32-build.sh
- env: Static Analysis
os: linux
compiler:
addons:
apt:
packages:
- coccinelle
before_install:
script:
# "before_script" that builds Git is inherited from base job
- make coccicheck
after_failure:
- env: Documentation
os: linux
compiler: clang
addons:
apt:
packages:
- asciidoc
- xmlto
before_install:
before_script:
script: ci/test-documentation.sh
after_failure:
before_install:
- >
case "${TRAVIS_OS_NAME:-linux}" in
linux)
export GIT_TEST_HTTPD=YesPlease
mkdir --parents custom/p4
pushd custom/p4
wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d
wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4
chmod u+x p4d
chmod u+x p4
export PATH="$(pwd):$PATH"
popd
mkdir --parents custom/git-lfs
pushd custom/git-lfs
wget --quiet https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz
tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
export PATH="$(pwd):$PATH"
popd
;;
osx)
brew update --quiet
# Uncomment this if you want to run perf tests:
# brew install gnu-time
brew install git-lfs gettext
brew link --force gettext
brew install caskroom/cask/perforce
;;
esac;
echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)";
p4d -V | grep Rev.;
echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)";
p4 -V | grep Rev.;
echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
git-lfs version;
before_script: make --jobs=2
script:
- >
mkdir -p $HOME/travis-cache;
ln -s $HOME/travis-cache/.prove t/.prove;
make --quiet test;
after_failure:
- >
: '<-- Click here to see detailed test output! ';
for TEST_EXIT in t/test-results/*.exit;
do
if [ "$(cat "$TEST_EXIT")" != "0" ];
then
TEST_OUT="${TEST_EXIT%exit}out";
echo "------------------------------------------------------------------------";
echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)";
echo "------------------------------------------------------------------------";
cat "${TEST_OUT}";
fi;
done;
notifications:
email: false