language: sh addons: apt: packages: - build-essential 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.4.2 - _ZSH_VERSION=5.3.1 - _ZSH_VERSION=5.3 - _ZSH_VERSION=5.2 - _ZSH_VERSION=5.1.1 - _ZSH_VERSION=5.0.8 - _ZSH_VERSION=5.0.2 cache: directories: - $ZSH_DIST before_script: - > setup_zsh() { dest="$ZSH_DIST/$1" if [[ ! -d $dest/bin ]]; then tmp="$(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 - zsh --version script: - zsh test.zsh -v allow_failures: - env: _ZSH_VERSION=5.0.2 - env: _ZSH_VERSION=5.0.8