278943d14a244b6b748078ff9ee18a17f58e7b45
   1language: c
   2
   3sudo: false
   4
   5cache:
   6  directories:
   7    - $HOME/travis-cache
   8
   9os:
  10  - linux
  11  - osx
  12
  13compiler:
  14  - clang
  15  - gcc
  16
  17addons:
  18  apt:
  19    packages:
  20    - language-pack-is
  21    - git-svn
  22    - apache2
  23
  24env:
  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
  40matrix:
  41  include:
  42    - env: GETTEXT_POISON=YesPlease
  43      os: linux
  44      compiler:
  45      addons:
  46      before_install:
  47    - env: Windows
  48      os: linux
  49      compiler:
  50      addons:
  51      before_install:
  52      before_script:
  53      script:
  54        - >
  55          test "$TRAVIS_REPO_SLUG" != "git/git" ||
  56          ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
  57      after_failure:
  58    - env: Linux32
  59      os: linux
  60      compiler:
  61      services:
  62        - docker
  63      before_install:
  64        - docker pull daald/ubuntu32:xenial
  65      before_script:
  66      script:
  67        - >
  68          docker run
  69          --interactive
  70          --env DEVELOPER
  71          --env DEFAULT_TEST_TARGET
  72          --env GIT_PROVE_OPTS
  73          --env GIT_TEST_OPTS
  74          --env GIT_TEST_CLONE_2GB
  75          --volume "${PWD}:/usr/src/git"
  76          daald/ubuntu32:xenial
  77          /usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
  78        # Use the following command to debug the docker build locally:
  79        # $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
  80        # root@container:/# /usr/src/git/ci/run-linux32-build.sh
  81    - env: Static Analysis
  82      os: linux
  83      compiler:
  84      addons:
  85        apt:
  86          packages:
  87          - coccinelle
  88      before_install:
  89      script:
  90        # "before_script" that builds Git is inherited from base job
  91        - make coccicheck
  92      after_failure:
  93    - env: Documentation
  94      os: linux
  95      compiler:
  96      addons:
  97        apt:
  98          packages:
  99          - asciidoc
 100          - xmlto
 101      before_install:
 102      before_script: gem install asciidoctor
 103      script: ci/test-documentation.sh
 104      after_failure:
 105
 106before_install:
 107  - >
 108    case "${TRAVIS_OS_NAME:-linux}" in
 109    linux)
 110      export GIT_TEST_HTTPD=YesPlease
 111
 112      mkdir --parents custom/p4
 113      pushd custom/p4
 114        wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d
 115        wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4
 116        chmod u+x p4d
 117        chmod u+x p4
 118        export PATH="$(pwd):$PATH"
 119      popd
 120      mkdir --parents custom/git-lfs
 121      pushd custom/git-lfs
 122        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
 123        tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
 124        cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
 125        export PATH="$(pwd):$PATH"
 126      popd
 127      ;;
 128    osx)
 129      brew update --quiet
 130      # Uncomment this if you want to run perf tests:
 131      # brew install gnu-time
 132      brew install git-lfs gettext
 133      brew link --force gettext
 134      brew install caskroom/cask/perforce
 135      ;;
 136    esac;
 137    echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)";
 138    p4d -V | grep Rev.;
 139    echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)";
 140    p4 -V | grep Rev.;
 141    echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
 142    git-lfs version;
 143
 144before_script: make --jobs=2
 145
 146script:
 147  - >
 148    mkdir -p $HOME/travis-cache;
 149    ln -s $HOME/travis-cache/.prove t/.prove;
 150    make --quiet test;
 151
 152after_failure:
 153  - >
 154    : '<-- Click here to see detailed test output!                                                        ';
 155    for TEST_EXIT in t/test-results/*.exit;
 156    do
 157      if [ "$(cat "$TEST_EXIT")" != "0" ];
 158      then
 159        TEST_OUT="${TEST_EXIT%exit}out";
 160        echo "------------------------------------------------------------------------";
 161        echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)";
 162        echo "------------------------------------------------------------------------";
 163        cat "${TEST_OUT}";
 164      fi;
 165    done;
 166
 167notifications:
 168  email: false