| 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 |
| 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: |
| name: 'MSYS nvm install' |
| runs-on: windows-latest |
| strategy: |
| 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: |
| name: 'Cygwin nvm install' |
| runs-on: windows-latest |
| steps: |
| - name: Install Cygwin |
| shell: bash |
| run: | |
| export SITE='https://mirror.clarkson.edu/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: |
| name: 'WSL nvm install' |
| runs-on: windows-latest |
| env: |
| WSLENV: NVM_INSTALL_GITHUB_REPO:NVM_INSTALL_VERSION:/p |
| strategy: |
| matrix: |
| wsl-distrib: |
| - Debian |
| - Alpine |
| - Ubuntu-18.04 |
| npm-node-version: |
| - '--lts' |
| - '11' |
| steps: |
| - uses: Vampire/setup-wsl@v1 |
| with: |
| distribution: ${{ matrix.wsl-distrib }} |
| additional-packages: bash git curl ca-certificates |
| - name: Retrieve nvm on WSL |
| shell: wsl-bash {0} |
| run: | |
| if [ "${{ matrix.wsl-distrib }}" = "Ubuntu-18.04" ] && [ "${{ 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 }} |
| |
| nvm_windows: |
| needs: [wsl_matrix, cygwin_matrix, msys_matrix, msys_fail_install] |
| runs-on: ubuntu-latest |
| steps: |
| - run: 'echo tests completed' |