aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 30631ea850794372ab1b9f8fb4991312264d73d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
language: sh

os:
  - linux
  - osx

osx_image: xcode9.4

addons:
  apt:
    packages:
      - build-essential
      - git
      - mercurial
      - subversion
      - jq
      - node
      - golang
      - ruby
      - python
      - python-virtualenv

before_install:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update            ; fi

env:
  global:
    - ZSH_DIST=$HOME/.zshdist
  matrix:
    # Use _ZSH_VERSION since if ZSH_VERSION is present, travis cacher thinks it
    # is running in zsh and tries to use zsh specific functions.
    - _ZSH_VERSION=5.5.1
    - _ZSH_VERSION=5.5
    - _ZSH_VERSION=5.4.2
    - _ZSH_VERSION=5.4.1
    - _ZSH_VERSION=5.3.1
    - _ZSH_VERSION=5.3
    - _ZSH_VERSION=5.2
    - _ZSH_VERSION=5.1.1

cache:
  directories:
    - $ZSH_DIST

before_script:
  - >
    setup_zsh() {
      dest="$ZSH_DIST/$1"
      if [[ ! -d $dest/bin ]]; then
        coreutils_mktemp="mktemp"
        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
          coreutils_mktemp="gmktemp"
        fi
        tmp="$(${coreutils_mktemp} --directory --tmpdir="${TMPDIR:/tmp}" zshbuild.XXXXXX)"
        (
          cd "$tmp" &&
          curl -L http://downloads.sourceforge.net/zsh/zsh-${1}.tar.gz | tar zx &&
          cd zsh-$1 &&
          ./configure --prefix="$dest" &&
          make &&
          mkdir -p "$dest" &&
          make install ||
          echo "Failed to build zsh-${1}!"
        )
      fi
      export PATH="$dest/bin:$PATH"
    }
  - setup_zsh $_ZSH_VERSION
  # Show the git version being used to test.
  - "git --version"
  # Show the mercurial version being used to test.
  - "hg --version"
  # Show the zsh version being used to test.
  - "zsh --version"

script:
  - test/suite.spec