From 6c4a3e8a1b2ef2f9227594a4198e8588032926d7 Mon Sep 17 00:00:00 2001 From: Dominik Ritter Date: Fri, 13 Jul 2018 01:18:07 +0200 Subject: [PATCH] Execute tests on various ZSH versions --- .travis.yml | 73 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 648499ab..ab330f9c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,78 @@ -sudo: true -dist: trusty language: sh + +os: + - linux + - osx + 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 + - _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 + 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" -install: - - "sudo apt-get update -qq" - - "sudo apt-get install -y zsh" - - "sudo chsh -s $(which zsh)" - - "sudo apt-get install -y git mercurial subversion jq node golang ruby python python-virtualenv" - script: - test/powerlevel9k.spec - test/functions/utilities.spec @@ -29,4 +84,4 @@ script: - test/segments/go_version.spec - test/segments/vcs.spec - test/segments/kubecontext.spec - - test/segments/laravel_version.spec + - test/segments/laravel_version.spec \ No newline at end of file