submodules: add helper to determine if a submodule is initialized
[alt-git.git] / .travis.yml
blob0b2ea5c3e2daa057cb88763f1943f6a250d019d9
1 language: c
3 sudo: false
5 cache:
6   directories:
7     - $HOME/travis-cache
9 os:
10   - linux
11   - osx
13 compiler:
14   - clang
15   - gcc
17 addons:
18   apt:
19     packages:
20     - language-pack-is
21     - git-svn
22     - apache2
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.1"
31     - LINUX_GIT_LFS_VERSION="1.2.0"
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"
40 matrix:
41   include:
42     - env: Documentation
43       os: linux
44       compiler: clang
45       addons:
46         apt:
47           packages:
48           - asciidoc
49           - xmlto
50       before_install:
51       before_script:
52       script: ci/test-documentation.sh
53       after_failure:
55 before_install:
56   - >
57     case "${TRAVIS_OS_NAME:-linux}" in
58     linux)
59       export GIT_TEST_HTTPD=YesPlease
61       mkdir --parents custom/p4
62       pushd custom/p4
63         wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d
64         wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4
65         chmod u+x p4d
66         chmod u+x p4
67         export PATH="$(pwd):$PATH"
68       popd
69       mkdir --parents custom/git-lfs
70       pushd custom/git-lfs
71         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
72         tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
73         cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
74         export PATH="$(pwd):$PATH"
75       popd
76       ;;
77     osx)
78       brew_force_set_latest_binary_hash () {
79         FORMULA=$1
80         SHA=$(brew fetch --force $FORMULA 2>&1 | grep ^SHA256: | cut -d ' ' -f 2)
81         sed -E -i.bak "s/sha256 \"[0-9a-f]{64}\"/sha256 \"$SHA\"/g" \
82           "$(brew --repository homebrew/homebrew-binary)/$FORMULA.rb"
83       }
84       brew update --quiet
85       brew tap homebrew/binary --quiet
86       brew_force_set_latest_binary_hash perforce
87       brew_force_set_latest_binary_hash perforce-server
88       # Uncomment this if you want to run perf tests:
89       # brew install gnu-time
90       brew install git-lfs perforce-server perforce gettext
91       brew link --force gettext
92       ;;
93     esac;
94     echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)";
95     p4d -V | grep Rev.;
96     echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)";
97     p4 -V | grep Rev.;
98     echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
99     git-lfs version;
100     mkdir -p $HOME/travis-cache;
101     ln -s $HOME/travis-cache/.prove t/.prove;
103 before_script: make --jobs=2
105 script: make --quiet test
107 after_failure:
108   - >
109     : '<-- Click here to see detailed test output!                                                        ';
110     for TEST_EXIT in t/test-results/*.exit;
111     do
112       if [ "$(cat "$TEST_EXIT")" != "0" ];
113       then
114         TEST_OUT="${TEST_EXIT%exit}out";
115         echo "------------------------------------------------------------------------";
116         echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)";
117         echo "------------------------------------------------------------------------";
118         cat "${TEST_OUT}";
119       fi;
120     done;
122 notifications:
123   email: false