.travis.yml 3.9 KB
Newer Older
L
Lars Schneider 已提交
1 2
language: c

3 4
sudo: false

5 6 7 8
cache:
  directories:
    - $HOME/travis-cache

L
Lars Schneider 已提交
9 10 11 12 13 14 15 16 17 18 19 20
os:
  - linux
  - osx

compiler:
  - clang
  - gcc

addons:
  apt:
    packages:
    - language-pack-is
21
    - git-svn
22
    - apache2
L
Lars Schneider 已提交
23 24 25

env:
  global:
26
    - DEVELOPER=1
27 28 29
    # 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!
30 31
    - LINUX_P4_VERSION="16.2"
    - LINUX_GIT_LFS_VERSION="1.5.2"
L
Lars Schneider 已提交
32
    - DEFAULT_TEST_TARGET=prove
33
    - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
J
Jeff King 已提交
34
    - GIT_TEST_OPTS="--verbose-log"
L
Lars Schneider 已提交
35 36 37 38 39
    - 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"

L
Lars Schneider 已提交
40 41
matrix:
  include:
42 43
    - env: Linux32
      os: linux
44
      compiler:
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
      services:
        - docker
      before_install:
        - docker pull daald/ubuntu32:xenial
      before_script:
      script:
        - >
          docker run
          --interactive
          --env DEFAULT_TEST_TARGET
          --env GIT_PROVE_OPTS
          --env GIT_TEST_OPTS
          --env GIT_TEST_CLONE_2GB
          --volume "${PWD}:/usr/src/git"
          daald/ubuntu32:xenial
          /usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
        # Use the following command to debug the docker build locally:
        # $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
        # root@container:/# /usr/src/git/ci/run-linux32-build.sh
L
Lars Schneider 已提交
64 65
    - env: Documentation
      os: linux
66
      compiler:
L
Lars Schneider 已提交
67 68 69 70 71 72
      addons:
        apt:
          packages:
          - asciidoc
          - xmlto
      before_install:
73
      before_script: gem install asciidoctor
L
Lars Schneider 已提交
74 75 76
      script: ci/test-documentation.sh
      after_failure:

L
Lars Schneider 已提交
77 78 79 80
before_install:
  - >
    case "${TRAVIS_OS_NAME:-linux}" in
    linux)
81 82
      export GIT_TEST_HTTPD=YesPlease

L
Lars Schneider 已提交
83 84
      mkdir --parents custom/p4
      pushd custom/p4
85 86
        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
L
Lars Schneider 已提交
87 88 89 90 91 92
        chmod u+x p4d
        chmod u+x p4
        export PATH="$(pwd):$PATH"
      popd
      mkdir --parents custom/git-lfs
      pushd custom/git-lfs
93 94 95
        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 .
L
Lars Schneider 已提交
96 97 98 99 100
        export PATH="$(pwd):$PATH"
      popd
      ;;
    osx)
      brew update --quiet
101 102
      # Uncomment this if you want to run perf tests:
      # brew install gnu-time
103
      brew install git-lfs gettext
L
Lars Schneider 已提交
104
      brew link --force gettext
105
      brew install caskroom/cask/perforce
L
Lars Schneider 已提交
106 107 108 109 110 111 112 113
      ;;
    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;
114 115
    mkdir -p $HOME/travis-cache;
    ln -s $HOME/travis-cache/.prove t/.prove;
L
Lars Schneider 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

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