mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-08-19 20:13:44 +00:00
Compare commits
No commits in common. "0d5338166694e558ce315172f4ca93c20c0ded26" and "c31a867c463bbe2251bd3b996a611f8cdc3007eb" have entirely different histories.
0d53381666
...
c31a867c46
30
.github/workflows/tests.yml
vendored
30
.github/workflows/tests.yml
vendored
@ -19,24 +19,13 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
exclude:
|
include:
|
||||||
- shell: sh
|
- shell: bash
|
||||||
suite: install_script
|
suite: install_script
|
||||||
- shell: dash
|
# shell:
|
||||||
suite: install_script
|
# - bash
|
||||||
- shell: zsh
|
# suite:
|
||||||
suite: install_script
|
# - install_script
|
||||||
- shell: ksh
|
|
||||||
suite: install_script
|
|
||||||
suite:
|
|
||||||
- install_script
|
|
||||||
- sourcing
|
|
||||||
shell:
|
|
||||||
- sh
|
|
||||||
- bash
|
|
||||||
- dash
|
|
||||||
- zsh
|
|
||||||
# - ksh
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Harden Runner
|
- name: Harden Runner
|
||||||
@ -48,13 +37,7 @@ jobs:
|
|||||||
raw.githubusercontent.com:443
|
raw.githubusercontent.com:443
|
||||||
nodejs.org:443
|
nodejs.org:443
|
||||||
iojs.org:443
|
iojs.org:443
|
||||||
azure.archive.ubuntu.com:80
|
|
||||||
packages.microsoft.com:443
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- run: sudo apt-get update; sudo apt-get install ${{ matrix.shell }}
|
|
||||||
if: matrix.shell == 'zsh' || matrix.shell == 'ksh'
|
|
||||||
# zsh (https://github.com/actions/runner-images/issues/264) and ksh are not in the ubuntu image
|
|
||||||
shell: bash
|
|
||||||
- run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }}
|
- run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }}
|
||||||
- run: curl --version
|
- run: curl --version
|
||||||
- run: wget --version
|
- run: wget --version
|
||||||
@ -65,7 +48,6 @@ jobs:
|
|||||||
skip-ls-check: true
|
skip-ls-check: true
|
||||||
shell-command: echo installed
|
shell-command: echo installed
|
||||||
- run: npm ls urchin
|
- run: npm ls urchin
|
||||||
- run: npx which urchin
|
|
||||||
- run: env
|
- run: env
|
||||||
- run: make TERM=xterm-256color TEST_SUITE="${{ matrix.suite }}" SHELL="${{ matrix.shell }}" URCHIN="$(npx which urchin)" test-${{ matrix.shell }}
|
- run: make TERM=xterm-256color TEST_SUITE="${{ matrix.suite }}" SHELL="${{ matrix.shell }}" URCHIN="$(npx which urchin)" test-${{ matrix.shell }}
|
||||||
|
|
||||||
|
@ -87,6 +87,11 @@ env:
|
|||||||
- SHELL=bash TEST_SUITE=fast
|
- SHELL=bash TEST_SUITE=fast
|
||||||
- SHELL=zsh TEST_SUITE=fast
|
- SHELL=zsh TEST_SUITE=fast
|
||||||
# - SHELL=ksh TEST_SUITE=fast
|
# - SHELL=ksh TEST_SUITE=fast
|
||||||
|
- 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=slow
|
- SHELL=sh TEST_SUITE=slow
|
||||||
- SHELL=dash TEST_SUITE=slow
|
- SHELL=dash TEST_SUITE=slow
|
||||||
- SHELL=bash TEST_SUITE=slow
|
- SHELL=bash TEST_SUITE=slow
|
||||||
|
2
Makefile
2
Makefile
@ -43,7 +43,7 @@ $(SHELL_TARGETS):
|
|||||||
@shell='$@'; shell=$${shell##*-}; \
|
@shell='$@'; shell=$${shell##*-}; \
|
||||||
which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \
|
which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \
|
||||||
printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \
|
printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \
|
||||||
[ -z "$$TRAVIS_BUILD_DIR" ] && [ -z "$$GITHUB_ACTIONS" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \
|
[ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \
|
||||||
for suite in $(TEST_SUITE); do \
|
for suite in $(TEST_SUITE); do \
|
||||||
echo "Running test suite: $$suite"; \
|
echo "Running test suite: $$suite"; \
|
||||||
$(URCHIN) -f -s $$shell test/$$suite || exit; \
|
$(URCHIN) -f -s $$shell test/$$suite || exit; \
|
||||||
|
25
nvm.sh
25
nvm.sh
@ -4559,7 +4559,7 @@ nvm_auto() {
|
|||||||
|
|
||||||
case "${NVM_MODE}" in
|
case "${NVM_MODE}" in
|
||||||
none) return 0 ;;
|
none) return 0 ;;
|
||||||
use)
|
use | install)
|
||||||
local VERSION
|
local VERSION
|
||||||
local NVM_CURRENT
|
local NVM_CURRENT
|
||||||
NVM_CURRENT="$(nvm_ls_current)"
|
NVM_CURRENT="$(nvm_ls_current)"
|
||||||
@ -4567,28 +4567,25 @@ nvm_auto() {
|
|||||||
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
||||||
if [ -n "${VERSION}" ]; then
|
if [ -n "${VERSION}" ]; then
|
||||||
if [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
if [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
||||||
nvm use --silent "${VERSION}" >/dev/null
|
if [ "_${NVM_MODE}" = '_install' ]; then
|
||||||
|
nvm install "${VERSION}" >/dev/null
|
||||||
|
else
|
||||||
|
nvm use --silent "${VERSION}" >/dev/null
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
elif nvm_rc_version >/dev/null 2>&1; then
|
||||||
nvm use --silent >/dev/null
|
if [ "_${NVM_MODE}" = '_install' ]; then
|
||||||
|
nvm install >/dev/null
|
||||||
|
else
|
||||||
|
nvm use --silent >/dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
install)
|
|
||||||
local VERSION
|
|
||||||
VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)"
|
|
||||||
if [ -n "${VERSION}" ] && [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
|
||||||
nvm install "${VERSION}" >/dev/null
|
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
|
||||||
nvm install >/dev/null
|
|
||||||
else
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
nvm_err 'Invalid auto mode supplied.'
|
nvm_err 'Invalid auto mode supplied.'
|
||||||
return 1
|
return 1
|
||||||
|
@ -27,15 +27,15 @@ setup () {
|
|||||||
mkdir -p "$npm_config_prefix/lib"
|
mkdir -p "$npm_config_prefix/lib"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
setup
|
setup
|
||||||
|
|
||||||
npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package'
|
npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package'
|
||||||
message=$(nvm_check_global_modules)
|
message=$(nvm_check_global_modules)
|
||||||
[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed; got:\n${message}"
|
[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed; got:\n${message}"
|
||||||
|
|
||||||
if [ -n "${ORIGINAL_NVM_DIR}" ] && [ -z "${GITHUB_ACTIONS}" ]; then
|
if [ -n "${ORIGINAL_NVM_DIR}" ]; then
|
||||||
# Admit we're using NVM, just for this one test
|
# Admit we're using NVM, just for this one test
|
||||||
# TODO: fix this for GHA
|
|
||||||
message=$(NVM_DIR="${ORIGINAL_NVM_DIR}" nvm_check_global_modules)
|
message=$(NVM_DIR="${ORIGINAL_NVM_DIR}" nvm_check_global_modules)
|
||||||
[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm is managed by nvm; got:\n${message}"
|
[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm is managed by nvm; got:\n${message}"
|
||||||
fi
|
fi
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
die () { echo "$*" ; echo "|${NVM_DIR}|"; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
echo '0.10.1' > ../../alias/default || die "couldn't create default alias"
|
echo '0.10.1' > ../../alias/default || die "couldn't create default alias"
|
||||||
|
|
||||||
@ -9,12 +9,12 @@ echo '0.10.1' > ../../alias/default || die "couldn't create default alias"
|
|||||||
NVM_TARGET=0.10.3
|
NVM_TARGET=0.10.3
|
||||||
NVM_DEFAULT="$(nvm_resolve_local_alias default)"
|
NVM_DEFAULT="$(nvm_resolve_local_alias default)"
|
||||||
|
|
||||||
[ "_${NVM_DEFAULT}" != "_${NVM_TARGET}" ] || die "default ${NVM_DEFAULT} is the same as target ${NVM_TARGET}"
|
[ "_$NVM_DEFAULT" != "_$NVM_TARGET" ] || die "default $NVM_DEFAULT is the same as target $NVM_TARGET"
|
||||||
|
|
||||||
nvm use "${NVM_TARGET}" || die "nvm use ${NVM_TARGET} failed"
|
nvm use $NVM_TARGET || die "nvm use $NVM_TARGET failed"
|
||||||
|
|
||||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||||
|
|
||||||
NVM_CURRENT="$(nvm current)"
|
NVM_CURRENT="$(nvm current)"
|
||||||
|
|
||||||
[ "_${NVM_CURRENT#v}" = "_${NVM_TARGET}" ] || die "node version not retained after sourcing"
|
[ "_${NVM_CURRENT#v}" = "_$NVM_TARGET" ] || die "node version not retained after sourcing"
|
||||||
|
@ -8,21 +8,21 @@ die () { echo "$@" ; exit 1; }
|
|||||||
# despite being unloaded in setup, the inherited PATH still contains
|
# despite being unloaded in setup, the inherited PATH still contains
|
||||||
# an nvm-installed node version. We have to reset NVM_DIR after the unload.
|
# an nvm-installed node version. We have to reset NVM_DIR after the unload.
|
||||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||||
NVM_DIR_CACHED="${NVM_DIR}"
|
NVM_DIR_CACHED="$NVM_DIR"
|
||||||
nvm unload || die 'unloading returned nonzero exit code'
|
nvm unload || die 'unloading returned nonzero exit code'
|
||||||
NVM_DIR="${NVM_DIR_CACHED}"
|
NVM_DIR="$NVM_DIR_CACHED"
|
||||||
|
|
||||||
echo '0.10.1' > "${NVM_DIR}/alias/default" || die 'creation of default alias failed'
|
echo '0.10.1' > ../../alias/default || die 'creation of default alias failed'
|
||||||
|
|
||||||
# Now to begin the real test
|
# Now to begin the real test
|
||||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||||
|
|
||||||
NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)"
|
NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)"
|
||||||
NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)"
|
NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)"
|
||||||
[ "_${NVM_LS_CURRENT}" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '${NVM_LS_CURRENT_NOT_GREPPED}'"
|
[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT_NOT_GREPPED'"
|
||||||
|
|
||||||
# NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)"
|
# NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)"
|
||||||
|
|
||||||
NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)"
|
NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)"
|
||||||
[ "_${NVM_ALIAS_DEFAULT}" = "_default -> 0.10.1 (-> v0.10.1)" ] \
|
[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \
|
||||||
|| die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '${NVM_ALIAS_DEFAULT}'"
|
|| die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'"
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
die () { echo "$*" ; echo "|${NVM_DIR}|"; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
supports_source_options () {
|
supports_source_options () {
|
||||||
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
|
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
|
||||||
}
|
}
|
||||||
@ -11,23 +10,18 @@ if ! supports_source_options; then
|
|||||||
exit 0;
|
exit 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo '0.10.2' > .nvmrc || die 'creation of .nvmrc failed'
|
echo '0.10.2' > ../../.nvmrc || die 'creation of .nvmrc failed'
|
||||||
|
|
||||||
export NVM_DIR="${PWD}/../.."
|
|
||||||
rm ../../alias/default
|
|
||||||
|
|
||||||
\. ../../nvm.sh --install
|
\. ../../nvm.sh --install
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$(echo $?)"
|
||||||
|
|
||||||
echo 'sourcing complete.'
|
echo 'sourcing complete.'
|
||||||
|
|
||||||
|
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)"
|
||||||
|
|
||||||
[ "_$(nvm_rc_version | \grep -o -e 'with version .*$')" = "_with version <0.10.2>" ] || die "nvm_rc_version $(nvm_rc_version)"
|
[ "_$(nvm_rc_version | \grep -o -e 'with version .*$')" = "_with version <0.10.2>" ] || die "nvm_rc_version $(nvm_rc_version)"
|
||||||
|
|
||||||
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: \n$(nvm_ls)"
|
[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE"
|
||||||
|
|
||||||
[ "_${EXIT_CODE}" = '_0' ] || die "sourcing returned nonzero exit code: ${EXIT_CODE}"
|
|
||||||
|
|
||||||
NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)"
|
NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)"
|
||||||
[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got >${NVM_LS_CURRENT}<\n$(nvm_ls)"
|
[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT' `nvm ls`"
|
||||||
|
|
||||||
rm .nvmrc
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
supports_source_options () {
|
supports_source_options () {
|
||||||
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
|
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
|
||||||
}
|
}
|
||||||
@ -12,26 +11,22 @@ if ! supports_source_options; then
|
|||||||
exit 0;
|
exit 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm .nvmrc
|
|
||||||
export NVM_DIR="${PWD}/../.."
|
|
||||||
echo '0.10.2' > ../../alias/default || die 'creation of default alias failed'
|
echo '0.10.2' > ../../alias/default || die 'creation of default alias failed'
|
||||||
|
|
||||||
echo 'sourcing nvm with --install...'
|
echo 'sourcing nvm with --install...'
|
||||||
|
|
||||||
\. ../../nvm.sh --install
|
\. ../../nvm.sh --install
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$(echo $?)"
|
||||||
|
|
||||||
echo 'sourcing complete.'
|
echo 'sourcing complete.'
|
||||||
|
|
||||||
[ "$(nvm_alias default)" = '0.10.2' ] || die "nvm_alias default did not return '0.10.2', got >$(nvm_alias default)<"
|
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)"
|
||||||
|
|
||||||
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: \n$(nvm_ls)"
|
[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE"
|
||||||
|
|
||||||
[ "_$EXIT_CODE" = '_0' ] || die "sourcing returned nonzero exit code: ${EXIT_CODE}"
|
|
||||||
|
|
||||||
NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)"
|
NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)"
|
||||||
[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', >${NVM_LS_CURRENT}<\n$(nvm_ls)"
|
[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT'"
|
||||||
|
|
||||||
NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)"
|
NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)"
|
||||||
[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \
|
[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \
|
||||||
|| die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got >${NVM_ALIAS_DEFAULT}<\n$(nvm_ls)"
|
|| die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got '$NVM_ALIAS_DEFAULT'"
|
||||||
|
@ -4,5 +4,4 @@ rm -rf ../../alias
|
|||||||
rm -rf ../../v0.10.1
|
rm -rf ../../v0.10.1
|
||||||
rm -rf ../../v0.10.2
|
rm -rf ../../v0.10.2
|
||||||
rm -rf ../../v0.10.3
|
rm -rf ../../v0.10.3
|
||||||
rm -rf ../../versions/node/v4.1.0
|
|
||||||
rm -f ../../.nvmrc
|
rm -f ../../.nvmrc
|
Loading…
x
Reference in New Issue
Block a user