190 lines
6.0 KiB
YAML
190 lines
6.0 KiB
YAML
name: 'Tests on Windows: `nvm install`'
|
|
|
|
on: [pull_request, push]
|
|
|
|
env:
|
|
NVM_INSTALL_GITHUB_REPO: ${{ github.repository }}
|
|
NVM_INSTALL_VERSION: ${{ github.sha }}
|
|
|
|
jobs:
|
|
msys_fail_install:
|
|
# Default installation does not work due to npm_config_prefix set to C:\npm\prefix
|
|
permissions:
|
|
contents: none
|
|
name: 'MSYS fail prefix nvm install'
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Retrieve nvm
|
|
shell: bash
|
|
run: |
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash
|
|
. "$HOME/.nvm/nvm.sh"
|
|
! nvm install --lts
|
|
|
|
msys_matrix:
|
|
permissions:
|
|
contents: none
|
|
name: 'MSYS nvm install'
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
npm-node-version:
|
|
- '--lts'
|
|
- '--default 12'
|
|
- '--no-progress 10'
|
|
steps:
|
|
- name: Retrieve nvm
|
|
shell: bash
|
|
run: |
|
|
unset npm_config_prefix
|
|
if [ "${{ matrix.npm-node-version }}" = "--lts" ]; then
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | bash
|
|
else
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash
|
|
fi
|
|
. "$HOME/.nvm/nvm.sh"
|
|
nvm install ${{ matrix.npm-node-version }}
|
|
|
|
cygwin_matrix:
|
|
permissions:
|
|
contents: none
|
|
name: 'Cygwin nvm install'
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Install Cygwin
|
|
shell: bash
|
|
run: |
|
|
export SITE='https://mirror.clarkson.edu/cygwin/' # see https://archlinux.org/mirrors/clarkson.edu/1603/ for uptime status
|
|
export SITE='https://mirrors.kernel.org/sourceware/cygwin/'
|
|
export LOCALDIR="$(pwd)"
|
|
export ROOTDIR="$USERPROFILE\\cygwin"
|
|
export PACKAGES='bash,git,curl'
|
|
|
|
curl -fsSLo setup-x86_64.exe 'https://cygwin.com/setup-x86_64.exe'
|
|
./setup-x86_64.exe --disable-buggy-antivirus -q -s "$SITE" -l "$LOCALDIR" -R "$ROOTDIR" -P "$PACKAGES"
|
|
|
|
cat >~/setup.sh <<EOM
|
|
unset npm_config_prefix
|
|
export NVM_INSTALL_GITHUB_REPO="$NVM_INSTALL_GITHUB_REPO"
|
|
export NVM_INSTALL_VERSION="$NVM_INSTALL_VERSION"
|
|
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | bash
|
|
. "$HOME/.nvm/nvm.sh"
|
|
nvm install --lts
|
|
|
|
nvm deactivate
|
|
rm -rf "$HOME/.nvm/nvm.sh"
|
|
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD=script bash
|
|
. "$HOME/.nvm/nvm.sh"
|
|
nvm install 9
|
|
EOM
|
|
- name: Retrieve nvm
|
|
shell: cmd
|
|
run: |
|
|
cd %USERPROFILE%\cygwin\bin
|
|
bash.exe "%USERPROFILE%\setup.sh"
|
|
|
|
wsl_matrix:
|
|
continue-on-error: true
|
|
name: 'WSL nvm install'
|
|
defaults:
|
|
run:
|
|
shell: wsl-bash {0}
|
|
runs-on: windows-latest
|
|
env:
|
|
WSLENV: NVM_INSTALL_GITHUB_REPO:NVM_INSTALL_VERSION:/p
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
wsl-distrib:
|
|
- Debian
|
|
# - Alpine # fails
|
|
- Ubuntu-20.04
|
|
- Ubuntu-18.04
|
|
npm-node-version:
|
|
- '--lts'
|
|
- '21'
|
|
- '18'
|
|
- '16'
|
|
- '14'
|
|
- '12'
|
|
- '10'
|
|
exclude:
|
|
- wsl-distrib: Ubuntu-18.04
|
|
npm-node-version: '--lts'
|
|
- wsl-distrib: Ubuntu-18.04
|
|
npm-node-version: '21'
|
|
- wsl-distrib: Ubuntu-18.04
|
|
npm-node-version: '18'
|
|
method:
|
|
- ''
|
|
- 'script'
|
|
steps:
|
|
- uses: Vampire/setup-wsl@v2
|
|
with:
|
|
distribution: ${{ matrix.wsl-distrib }}
|
|
additional-packages: bash git curl ca-certificates wget
|
|
- name: Retrieve nvm on WSL
|
|
run: |
|
|
if [ -z "${{ matrix.method }}" ]; then
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | bash
|
|
else
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD="${{matrix.method}}" bash
|
|
fi
|
|
. "$HOME/.nvm/nvm.sh"
|
|
nvm install ${{ matrix.npm-node-version }}
|
|
node -v
|
|
|
|
wsl_matrix_unofficial:
|
|
continue-on-error: true
|
|
name: 'WSL nvm install'
|
|
defaults:
|
|
run:
|
|
shell: wsl-bash {0}
|
|
runs-on: windows-latest
|
|
env:
|
|
WSLENV: NVM_INSTALL_GITHUB_REPO:NVM_INSTALL_VERSION:/p
|
|
NVM_NODEJS_ORG_MIRROR: https://unofficial-builds.nodejs.org/download/release
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
wsl-distrib:
|
|
- Alpine
|
|
npm-node-version:
|
|
- '--lts'
|
|
- '21'
|
|
- '18'
|
|
- '16'
|
|
- '14'
|
|
- '12'
|
|
- '11'
|
|
- '10'
|
|
method:
|
|
- ''
|
|
- 'script'
|
|
steps:
|
|
- uses: Vampire/setup-wsl@v2
|
|
with:
|
|
distribution: ${{ matrix.wsl-distrib }}
|
|
additional-packages: bash git curl ca-certificates wget
|
|
- name: Retrieve nvm on WSL
|
|
run: |
|
|
if [ -z "${{ matrix.method }}" ]; then
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | bash
|
|
else
|
|
curl -fsSLo- "https://raw.githubusercontent.com/${NVM_INSTALL_GITHUB_REPO}/${NVM_INSTALL_VERSION}/install.sh" | METHOD="${{matrix.method}}" bash
|
|
fi
|
|
. "$HOME/.nvm/nvm.sh"
|
|
NVM_NODEJS_ORG_MIRROR=${{ env.NVM_NODEJS_ORG_MIRROR }} nvm install ${{ matrix.npm-node-version }}
|
|
|
|
nvm_windows:
|
|
name: 'tests, on windows'
|
|
permissions:
|
|
contents: none
|
|
needs: [wsl_matrix, wsl_matrix_unofficial, cygwin_matrix, msys_matrix, msys_fail_install]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: 'echo tests completed'
|