591cc57b80aa415be9c20b3c0dc746d792e68071
   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: 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
  76before_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
 116before_script: make --jobs=2
 117
 118script: make --quiet test
 119
 120after_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
 135notifications:
 136  email: false