From 71a56a45abebd2bb6935ad11a75e1085e8e752c0 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 18:49:40 +0100 Subject: [PATCH 1/8] Clean environment variables when re-sourcing --- nvm.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nvm.sh b/nvm.sh index 0d9efe6..88f265a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -8,6 +8,14 @@ { # this ensures the entire script is downloaded # +unset NVM_DIR +unset NVM_NODEJS_ORG_MIRROR +unset NVM_IOJS_ORG_MIRROR +unset NVM_RC_VERSION +unset NODE_PATH +unset NVM_PATH +unset NVM_BIN + NVM_SCRIPT_SOURCE="$_" nvm_has() { From 26d8a71161098161cd59d921e9567380c6dd96e9 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 19:14:48 +0100 Subject: [PATCH 2/8] Swap manual unset for nvm unload --- nvm.sh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/nvm.sh b/nvm.sh index 88f265a..62d5da7 100755 --- a/nvm.sh +++ b/nvm.sh @@ -8,13 +8,10 @@ { # this ensures the entire script is downloaded # -unset NVM_DIR -unset NVM_NODEJS_ORG_MIRROR -unset NVM_IOJS_ORG_MIRROR -unset NVM_RC_VERSION -unset NODE_PATH -unset NVM_PATH -unset NVM_BIN +# Unload any existing environment variables +if type nvm | grep -i function > /dev/null; then + nvm unload +fi NVM_SCRIPT_SOURCE="$_" From 323eb933d01b7cd105f908f559845e19d3b9dd56 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 19:15:56 +0100 Subject: [PATCH 3/8] Make sure nvm unload gets all envs --- nvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 62d5da7..31fb47a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2096,7 +2096,8 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' nvm_has_system_node nvm_has_system_iojs \ nvm_download nvm_get_latest nvm_has nvm_get_latest \ nvm_supports_source_options > /dev/null 2>&1 - unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1 + unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR \ + NVM_DIR NVM_CD_FLAGS NODE_PATH NVM_PATH NVM_BIN > /dev/null 2>&1 ;; * ) >&2 nvm help From ea8332e14ce3b2c74b0716f03e41bf781ee73776 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 21:11:31 +0100 Subject: [PATCH 4/8] Remove previous nvm check and move unload into a function --- nvm.sh | 58 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/nvm.sh b/nvm.sh index 31fb47a..0403c17 100755 --- a/nvm.sh +++ b/nvm.sh @@ -8,10 +8,36 @@ { # this ensures the entire script is downloaded # +nvm_unload() { + unset -f nvm nvm_print_versions nvm_checksum \ + nvm_iojs_prefix nvm_node_prefix \ + nvm_add_iojs_prefix nvm_strip_iojs_prefix \ + nvm_is_iojs_version nvm_is_alias \ + nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \ + nvm_ls nvm_remote_version nvm_remote_versions \ + nvm_install_iojs_binary nvm_install_node_binary \ + nvm_install_node_source \ + nvm_version nvm_rc_version nvm_match_version \ + nvm_ensure_default_set nvm_get_arch nvm_get_os \ + nvm_print_implicit_alias nvm_validate_implicit_alias \ + nvm_resolve_alias nvm_ls_current nvm_alias \ + nvm_binary_available nvm_prepend_path nvm_strip_path \ + nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \ + nvm_normalize_version nvm_is_valid_version \ + nvm_ensure_version_installed \ + nvm_version_path nvm_alias_path nvm_version_dir \ + nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ + nvm_version_greater nvm_version_greater_than_or_equal_to \ + nvm_print_npm_version nvm_npm_global_modules \ + nvm_has_system_node nvm_has_system_iojs \ + nvm_download nvm_get_latest nvm_has nvm_get_latest \ + nvm_supports_source_options > /dev/null 2>&1 + unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR \ + NVM_DIR NVM_CD_FLAGS NODE_PATH NVM_PATH NVM_BIN > /dev/null 2>&1 +} + # Unload any existing environment variables -if type nvm | grep -i function > /dev/null; then - nvm unload -fi +nvm_unload NVM_SCRIPT_SOURCE="$_" @@ -2073,31 +2099,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d' echo "0.26.1" ;; "unload" ) - unset -f nvm nvm_print_versions nvm_checksum \ - nvm_iojs_prefix nvm_node_prefix \ - nvm_add_iojs_prefix nvm_strip_iojs_prefix \ - nvm_is_iojs_version nvm_is_alias \ - nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \ - nvm_ls nvm_remote_version nvm_remote_versions \ - nvm_install_iojs_binary nvm_install_node_binary \ - nvm_install_node_source \ - nvm_version nvm_rc_version nvm_match_version \ - nvm_ensure_default_set nvm_get_arch nvm_get_os \ - nvm_print_implicit_alias nvm_validate_implicit_alias \ - nvm_resolve_alias nvm_ls_current nvm_alias \ - nvm_binary_available nvm_prepend_path nvm_strip_path \ - nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \ - nvm_normalize_version nvm_is_valid_version \ - nvm_ensure_version_installed \ - nvm_version_path nvm_alias_path nvm_version_dir \ - nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ - nvm_version_greater nvm_version_greater_than_or_equal_to \ - nvm_print_npm_version nvm_npm_global_modules \ - nvm_has_system_node nvm_has_system_iojs \ - nvm_download nvm_get_latest nvm_has nvm_get_latest \ - nvm_supports_source_options > /dev/null 2>&1 - unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR \ - NVM_DIR NVM_CD_FLAGS NODE_PATH NVM_PATH NVM_BIN > /dev/null 2>&1 + nvm_unload ;; * ) >&2 nvm help From a2f9e464450a45bdc889d004989c3730ed8777e6 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 21:35:37 +0100 Subject: [PATCH 5/8] Remove NVM_DIR environment variable from .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 48b4876..4c13175 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ install: - chmod +x /tmp/urchin/package/urchin - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL + - make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL env: - SHELL=bash TEST_SUITE=install_script - SHELL=sh TEST_SUITE=fast From da4dc9d2101a2b63134aabf50e0f10d528bdbe9e Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 22:41:48 +0100 Subject: [PATCH 6/8] Run tests from direct from urchin not make --- .travis.yml | 57 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4c13175..3f9d457 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,35 +4,34 @@ addons: - zsh - ksh install: - - (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*) - - chmod +x /tmp/urchin/package/urchin + - (cd /usr/local/bin && wget https://raw.github.com/tlevine/urchin/master/urchin && chmod +x urchin) - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL + - urchin -f -s "$TEST_SHELL" "test/$TEST_SUITE" env: - - SHELL=bash TEST_SUITE=install_script - - SHELL=sh TEST_SUITE=fast - - SHELL=dash TEST_SUITE=fast - - SHELL=bash TEST_SUITE=fast - - SHELL=zsh TEST_SUITE=fast -# - SHELL=ksh TEST_SUITE=fast - - SHELL=sh TEST_SUITE=slow - - SHELL=dash TEST_SUITE=slow - - SHELL=bash TEST_SUITE=slow - - SHELL=zsh TEST_SUITE=slow -# - SHELL=ksh TEST_SUITE=slow - - SHELL=sh TEST_SUITE=sourcing - - SHELL=dash TEST_SUITE=sourcing - - SHELL=bash TEST_SUITE=sourcing - - SHELL=zsh TEST_SUITE=sourcing -# - SHELL=ksh TEST_SUITE=sourcing - - SHELL=sh TEST_SUITE=installation - - SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=dash TEST_SUITE=installation - - SHELL=dash TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=bash TEST_SUITE=installation - - SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 - - SHELL=zsh TEST_SUITE=installation - - SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 -# - SHELL=ksh TEST_SUITE=installation -# - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 + - TEST_SHELL=bash TEST_SUITE=install_script + - TEST_SHELL=sh TEST_SUITE=fast + - TEST_SHELL=dash TEST_SUITE=fast + - TEST_SHELL=bash TEST_SUITE=fast + - TEST_SHELL=zsh TEST_SUITE=fast +# - TEST_SHELL=ksh TEST_SUITE=fast + - TEST_SHELL=sh TEST_SUITE=slow + - TEST_SHELL=dash TEST_SUITE=slow + - TEST_SHELL=bash TEST_SUITE=slow + - TEST_SHELL=zsh TEST_SUITE=slow +# - TEST_SHELL=ksh TEST_SUITE=slow + - TEST_SHELL=sh TEST_SUITE=sourcing + - TEST_SHELL=dash TEST_SUITE=sourcing + - TEST_SHELL=bash TEST_SUITE=sourcing + - TEST_SHELL=zsh TEST_SUITE=sourcing +# - TEST_SHELL=ksh TEST_SUITE=sourcing + - TEST_SHELL=sh TEST_SUITE=installation + - TEST_SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1 + - TEST_SHELL=dash TEST_SUITE=installation + - TEST_SHELL=dash TEST_SUITE=installation WITHOUT_CURL=1 + - TEST_SHELL=bash TEST_SUITE=installation + - TEST_SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1 + - TEST_SHELL=zsh TEST_SUITE=installation + - TEST_SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1 +# - TEST_SHELL=ksh TEST_SUITE=installation +# - TEST_SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1 From dc2f86224d55a78ed642c226f5d4fa7f71e375fe Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 22:51:55 +0100 Subject: [PATCH 7/8] Run urchin from /tmp --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3f9d457..f0e8822 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,10 @@ addons: - zsh - ksh install: - - (cd /usr/local/bin && wget https://raw.github.com/tlevine/urchin/master/urchin && chmod +x urchin) + - (cd /tmp && wget https://raw.github.com/tlevine/urchin/master/urchin && chmod +x urchin) - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - - urchin -f -s "$TEST_SHELL" "test/$TEST_SUITE" + - /tmp/urchin -f -s "$TEST_SHELL" "test/$TEST_SUITE" env: - TEST_SHELL=bash TEST_SUITE=install_script - TEST_SHELL=sh TEST_SUITE=fast From dedb48e2a24a433678fbfe37b5225371da07c2f5 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Thu, 24 Sep 2015 22:54:53 +0100 Subject: [PATCH 8/8] Fix indentation error in .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f0e8822..89548d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ addons: - zsh - ksh install: - - (cd /tmp && wget https://raw.github.com/tlevine/urchin/master/urchin && chmod +x urchin) + - (cd /tmp && wget https://raw.github.com/tlevine/urchin/master/urchin && chmod +x urchin) - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' script: - /tmp/urchin -f -s "$TEST_SHELL" "test/$TEST_SUITE"