Merge branch 'jk/rev-parse-cleanup'
[git] / .travis.yml
1 language: c
2
3 sudo: false
4
5 cache:
6   directories:
7     - $HOME/travis-cache
8
9 os:
10   - linux
11   - osx
12
13 compiler:
14   - clang
15   - gcc
16
17 addons:
18   apt:
19     packages:
20     - language-pack-is
21     - git-svn
22     - apache2
23
24 env:
25   global:
26     - DEVELOPER=1
27     # The Linux build installs the defined dependency versions below.
28     # The OS X build installs the latest available versions. Keep that
29     # in mind when you encounter a broken OS X build!
30     - LINUX_P4_VERSION="16.2"
31     - LINUX_GIT_LFS_VERSION="1.5.2"
32     - DEFAULT_TEST_TARGET=prove
33     - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
34     - GIT_TEST_OPTS="--verbose-log"
35     - GIT_TEST_CLONE_2GB=YesPlease
36     # t9810 occasionally fails on Travis CI OS X
37     # t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
38     - GIT_SKIP_TESTS="t9810 t9816"
39
40 matrix:
41   include:
42     - env: Linux32
43       os: linux
44       services:
45         - docker
46       before_install:
47         - docker pull daald/ubuntu32:xenial
48       before_script:
49       script:
50         - >
51           docker run
52           --interactive
53           --env DEFAULT_TEST_TARGET
54           --env GIT_PROVE_OPTS
55           --env GIT_TEST_OPTS
56           --env GIT_TEST_CLONE_2GB
57           --volume "${PWD}:/usr/src/git"
58           daald/ubuntu32:xenial
59           /usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
60         # Use the following command to debug the docker build locally:
61         # $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
62         # root@container:/# /usr/src/git/ci/run-linux32-build.sh
63     - env: Documentation
64       os: linux
65       compiler: clang
66       addons:
67         apt:
68           packages:
69           - asciidoc
70           - xmlto
71       before_install:
72       before_script:
73       script: ci/test-documentation.sh
74       after_failure:
75
76 before_install:
77   - >
78     case "${TRAVIS_OS_NAME:-linux}" in
79     linux)
80       export GIT_TEST_HTTPD=YesPlease
81
82       mkdir --parents custom/p4
83       pushd custom/p4
84         wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d
85         wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4
86         chmod u+x p4d
87         chmod u+x p4
88         export PATH="$(pwd):$PATH"
89       popd
90       mkdir --parents custom/git-lfs
91       pushd custom/git-lfs
92         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
93         tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
94         cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
95         export PATH="$(pwd):$PATH"
96       popd
97       ;;
98     osx)
99       brew update --quiet
100       # Uncomment this if you want to run perf tests:
101       # brew install gnu-time
102       brew install git-lfs gettext
103       brew link --force gettext
104       brew install caskroom/cask/perforce
105       ;;
106     esac;
107     echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)";
108     p4d -V | grep Rev.;
109     echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)";
110     p4 -V | grep Rev.;
111     echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
112     git-lfs version;
113     mkdir -p $HOME/travis-cache;
114     ln -s $HOME/travis-cache/.prove t/.prove;
115
116 before_script: make --jobs=2
117
118 script: make --quiet test
119
120 after_failure:
121   - >
122     : '<-- Click here to see detailed test output!                                                        ';
123     for TEST_EXIT in t/test-results/*.exit;
124     do
125       if [ "$(cat "$TEST_EXIT")" != "0" ];
126       then
127         TEST_OUT="${TEST_EXIT%exit}out";
128         echo "------------------------------------------------------------------------";
129         echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)";
130         echo "------------------------------------------------------------------------";
131         cat "${TEST_OUT}";
132       fi;
133     done;
134
135 notifications:
136   email: false