git/.travis.yml
Johannes Schindelin e3efa94be9 perf: accommodate for MacOSX
As this developer has no access to MacOSX developer setups anymore,
Travis becomes the best bet to run performance tests on that OS.

However, on MacOSX /usr/bin/time is that good old BSD executable that
no Linux user cares about, as demonstrated by the perf-lib.sh's use
of GNU-ish extensions. And by the hard-coded path.

Let's just work around this issue by using gtime on MacOSX, the
Homebrew-provided GNU implementation onto which pretty much every
MacOSX power user falls back anyway.

To help other developers use Travis to run performance tests on
MacOSX, the .travis.yml file now sports a commented-out line that
installs GNU time via Homebrew.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-06-21 11:18:17 -07:00

120 lines
3.5 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
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.1"
- LINUX_GIT_LFS_VERSION="1.2.0"
- DEFAULT_TEST_TARGET=prove
- GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
- GIT_TEST_OPTS="--verbose --tee"
- 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: 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)
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_force_set_latest_binary_hash () {
FORMULA=$1
SHA=$(brew fetch --force $FORMULA 2>&1 | grep ^SHA256: | cut -d ' ' -f 2)
sed -E -i.bak "s/sha256 \"[0-9a-f]{64}\"/sha256 \"$SHA\"/g" \
/usr/local/Library/Taps/homebrew/homebrew-binary/$FORMULA.rb
}
brew update --quiet
brew tap homebrew/binary --quiet
brew_force_set_latest_binary_hash perforce
brew_force_set_latest_binary_hash perforce-server
# Uncomment this if you want to run perf tests:
# brew install gnu-time
brew install git-lfs perforce-server perforce gettext
brew link --force gettext
;;
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;
mkdir -p $HOME/travis-cache;
ln -s $HOME/travis-cache/.prove t/.prove;
before_script: make --jobs=2
script: 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