only install zsh on boxes that need it

don’t bother on macosx (preinstalled) or if the test matrix for that
box isn’t going to be testing in zsh.

this should speed up test runs for most cases, and later we can define
fast_failure and not have to wait for the longer ones.
This commit is contained in:
Matthew Rothenberg
2014-10-15 16:36:43 -04:00
parent b6fd7ae829
commit e7c56c7647

View File

@@ -7,8 +7,26 @@
# #
# Note: $TRAVIS_OS_NAME will only be set on text boxes with multi-os enabled, # Note: $TRAVIS_OS_NAME will only be set on text boxes with multi-os enabled,
# so use negation test so it will fail gracefully on normal Travis linux setup. # so use negation test so it will fail gracefully on normal Travis linux setup.
#
# TODO: also perhaps later only on ZSH test box if we split those
if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then
sudo apt-get install zsh
# okay, so we know we're probably on a linux box (or at least not an osx box)
# at this point. do we need to install zsh? let's say the default case is no:
needs_zsh=false
# check if zsh is listed in the TEST_SHELLS environment variable, set by
# our travis-ci build matrix.
if [[ $TEST_SHELLS =~ zsh ]]; then needs_zsh=true; fi
# if there is NO $TEST_SHELLS env variable persent (which should never happen,
# but maybe someone has been monkeying with the .travis.yml), run_tests.sh is
# going to fall back onto the default of testing everything, so we need zsh.
if [[ -z "$TEST_SHELLS" ]]; then needs_zsh=true; fi
# finally, we install zsh if needed!
if $needs_zsh ; then
sudo apt-get install zsh
else
echo "No deps required."
fi
fi fi