mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-08-19 12:03:43 +00:00
Compare commits
No commits in common. "c31a867c463bbe2251bd3b996a611f8cdc3007eb" and "d5e2c92a254cc10e95cd960a47515bec2d5c5e81" have entirely different histories.
c31a867c46
...
d5e2c92a25
104
.github/workflows/nvm-install-test.yml
vendored
104
.github/workflows/nvm-install-test.yml
vendored
@ -1,104 +0,0 @@
|
|||||||
name: 'Tests: nvm install with set -e'
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
ref:
|
|
||||||
description: 'git ref to use'
|
|
||||||
required: false
|
|
||||||
default: 'HEAD'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
matrix:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
matrix: ${{ steps.matrix.outputs.matrix }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- id: matrix
|
|
||||||
run: |
|
|
||||||
if [ "${{ github.event_name }}" == "workflow_dispatch" ] && [ -n "${{ github.event.inputs.ref }}" ]; then
|
|
||||||
echo "matrix=\"[\"${{ github.event.inputs.ref }}\"]\"" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
TAGS="$((echo "HEAD" && git tag --sort=-v:refname --merged HEAD --format='%(refname:strip=2) %(creatordate:short)' | grep '^v' | while read tag date; do
|
|
||||||
if [ "$(uname)" == "Darwin" ]; then
|
|
||||||
timestamp=$(date -j -f "%Y-%m-%d" "$date" +%s)
|
|
||||||
threshold=$(date -j -v-4y +%s)
|
|
||||||
else
|
|
||||||
timestamp=$(date -d "$date" +%s)
|
|
||||||
threshold=$(date -d "4 years ago" +%s)
|
|
||||||
fi
|
|
||||||
if [ $timestamp -ge $threshold ]; then echo "$tag"; fi
|
|
||||||
done) | xargs)"
|
|
||||||
echo $TAGS
|
|
||||||
TAGS_JSON=$(printf "%s\n" $TAGS | jq -R . | jq -sc .)
|
|
||||||
echo "matrix=${TAGS_JSON}" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
test:
|
|
||||||
needs: [matrix]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
continue-on-error: ${{ matrix.ref == 'v0.40.0' }} # https://github.com/nvm-sh/nvm/issues/3405
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
ref: ${{ fromJson(needs.matrix.outputs.matrix) }}
|
|
||||||
has-nvmrc:
|
|
||||||
- 'no nvmrc'
|
|
||||||
- 'nvmrc'
|
|
||||||
shell-level:
|
|
||||||
- 1 shlvl
|
|
||||||
- 2 shlvls
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: resolve HEAD to sha
|
|
||||||
run: |
|
|
||||||
if [ '${{ matrix.ref }}' = 'HEAD' ]; then
|
|
||||||
REF="$(git rev-parse HEAD)"
|
|
||||||
else
|
|
||||||
REF="${{ matrix.ref }}"
|
|
||||||
fi
|
|
||||||
echo "resolved ref: ${REF}"
|
|
||||||
echo "ref="$REF"" >> $GITHUB_ENV
|
|
||||||
- run: echo $- # which options are set
|
|
||||||
- run: echo node > .nvmrc
|
|
||||||
if: ${{ matrix.has-nvmrc == 'nvmrc' }}
|
|
||||||
- run: curl -I --compressed -v https://nodejs.org/dist/
|
|
||||||
- name: 'install nvm'
|
|
||||||
run: |
|
|
||||||
set -e
|
|
||||||
export NVM_INSTALL_VERSION="${ref}"
|
|
||||||
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${ref}/install.sh" | bash
|
|
||||||
- name: nvm --version
|
|
||||||
run: |
|
|
||||||
set +e
|
|
||||||
. $NVM_DIR/nvm.sh && nvm --version
|
|
||||||
- name: nvm install in 1 shell level, ${{ matrix.has-nvmrc }}
|
|
||||||
if: ${{ matrix.shell-level == '1 shlvl' }}
|
|
||||||
run: |
|
|
||||||
set -ex
|
|
||||||
. $NVM_DIR/nvm.sh
|
|
||||||
echo nvm.sh sourced
|
|
||||||
nvm --version
|
|
||||||
if [ '${{ matrix.has-nvmrc }}' == 'nvmrc' ]; then
|
|
||||||
nvm install
|
|
||||||
fi
|
|
||||||
- name: nvm install in 2 shell levels, ${{ matrix.has-nvmrc }}
|
|
||||||
if: ${{ matrix.shell-level == '2 shlvls' }}
|
|
||||||
run: |
|
|
||||||
if [ '${{ matrix.has-nvmrc }}' == 'nvmrc' ]; then
|
|
||||||
bash -c "set -ex && . $NVM_DIR/nvm.sh && echo nvm.sh sourced && nvm --version && nvm install"
|
|
||||||
else
|
|
||||||
bash -c "set -ex && . $NVM_DIR/nvm.sh && echo nvm.sh sourced && nvm --version"
|
|
||||||
fi
|
|
||||||
|
|
||||||
finisher:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [test]
|
|
||||||
steps:
|
|
||||||
- run: true
|
|
83
nvm.sh
83
nvm.sh
@ -3360,10 +3360,6 @@ nvm() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--save | -w)
|
--save | -w)
|
||||||
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
|
||||||
nvm_err '--save and -w may only be provided once'
|
|
||||||
return 6
|
|
||||||
fi
|
|
||||||
NVM_WRITE_TO_NVMRC=1
|
NVM_WRITE_TO_NVMRC=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
@ -3515,11 +3511,6 @@ nvm() {
|
|||||||
nvm_ensure_default_set "${provided_version}"
|
nvm_ensure_default_set "${provided_version}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
|
||||||
nvm_write_nvmrc "${VERSION}"
|
|
||||||
EXIT_CODE=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $EXIT_CODE -ne 0 ] && [ -n "${ALIAS-}" ]; then
|
if [ $EXIT_CODE -ne 0 ] && [ -n "${ALIAS-}" ]; then
|
||||||
nvm alias "${ALIAS}" "${provided_version}"
|
nvm alias "${ALIAS}" "${provided_version}"
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
@ -3755,8 +3746,6 @@ nvm() {
|
|||||||
local NVM_LTS
|
local NVM_LTS
|
||||||
local IS_VERSION_FROM_NVMRC
|
local IS_VERSION_FROM_NVMRC
|
||||||
IS_VERSION_FROM_NVMRC=0
|
IS_VERSION_FROM_NVMRC=0
|
||||||
local NVM_WRITE_TO_NVMRC
|
|
||||||
NVM_WRITE_TO_NVMRC=0
|
|
||||||
|
|
||||||
while [ $# -ne 0 ]; do
|
while [ $# -ne 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -3768,13 +3757,7 @@ nvm() {
|
|||||||
--) ;;
|
--) ;;
|
||||||
--lts) NVM_LTS='*' ;;
|
--lts) NVM_LTS='*' ;;
|
||||||
--lts=*) NVM_LTS="${1##--lts=}" ;;
|
--lts=*) NVM_LTS="${1##--lts=}" ;;
|
||||||
--save | -w)
|
--save | -w) NVM_WRITE_TO_NVMRC=1 ;;
|
||||||
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
|
||||||
nvm_err '--save and -w may only be provided once'
|
|
||||||
return 6
|
|
||||||
fi
|
|
||||||
NVM_WRITE_TO_NVMRC=1
|
|
||||||
;;
|
|
||||||
--*) ;;
|
--*) ;;
|
||||||
*)
|
*)
|
||||||
if [ -n "${1-}" ]; then
|
if [ -n "${1-}" ]; then
|
||||||
@ -3808,8 +3791,8 @@ nvm() {
|
|||||||
return 127
|
return 127
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
if [ "${NVM_WRITE_TO_NVMRC:-0}" -eq 1 ]; then
|
||||||
nvm_write_nvmrc "${VERSION}"
|
nvm_write_nvmrc "$VERSION"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "_${VERSION}" = '_system' ]; then
|
if [ "_${VERSION}" = '_system' ]; then
|
||||||
@ -3827,7 +3810,7 @@ nvm() {
|
|||||||
nvm_err 'System version of node not found.'
|
nvm_err 'System version of node not found.'
|
||||||
fi
|
fi
|
||||||
return 127
|
return 127
|
||||||
elif [ "_${VERSION}" = '_∞' ]; then
|
elif [ "_${VERSION}" = "_∞" ]; then
|
||||||
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
||||||
nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting."
|
nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting."
|
||||||
fi
|
fi
|
||||||
@ -4556,41 +4539,31 @@ nvm_supports_xz() {
|
|||||||
nvm_auto() {
|
nvm_auto() {
|
||||||
local NVM_MODE
|
local NVM_MODE
|
||||||
NVM_MODE="${1-}"
|
NVM_MODE="${1-}"
|
||||||
|
local VERSION
|
||||||
case "${NVM_MODE}" in
|
local NVM_CURRENT
|
||||||
none) return 0 ;;
|
if [ "_${NVM_MODE}" = '_install' ]; then
|
||||||
use | install)
|
VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)"
|
||||||
local VERSION
|
if [ -n "${VERSION}" ] && ! [ "_${VERSION}" = '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
||||||
local NVM_CURRENT
|
nvm install "${VERSION}" >/dev/null
|
||||||
NVM_CURRENT="$(nvm_ls_current)"
|
elif nvm_rc_version >/dev/null 2>&1; then
|
||||||
if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then
|
nvm install >/dev/null
|
||||||
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
fi
|
||||||
if [ -n "${VERSION}" ]; then
|
elif [ "_$NVM_MODE" = '_use' ]; then
|
||||||
if [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
NVM_CURRENT="$(nvm_ls_current)"
|
||||||
if [ "_${NVM_MODE}" = '_install' ]; then
|
if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then
|
||||||
nvm install "${VERSION}" >/dev/null
|
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
||||||
else
|
if [ -n "${VERSION}" ] && ! [ "_${VERSION}" = '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
||||||
nvm use --silent "${VERSION}" >/dev/null
|
nvm use --silent "${VERSION}" >/dev/null
|
||||||
fi
|
elif nvm_rc_version >/dev/null 2>&1; then
|
||||||
else
|
nvm use --silent >/dev/null
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
|
||||||
if [ "_${NVM_MODE}" = '_install' ]; then
|
|
||||||
nvm install >/dev/null
|
|
||||||
else
|
|
||||||
nvm use --silent >/dev/null
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
|
||||||
fi
|
fi
|
||||||
;;
|
else
|
||||||
*)
|
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
||||||
nvm_err 'Invalid auto mode supplied.'
|
fi
|
||||||
return 1
|
elif [ "_${NVM_MODE}" != '_none' ]; then
|
||||||
;;
|
nvm_err 'Invalid auto mode supplied.'
|
||||||
esac
|
return 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_process_parameters() {
|
nvm_process_parameters() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user