From 2bab8dc02bbfaa17b81043e1557db67fe03ad40b Mon Sep 17 00:00:00 2001
From: "Nicolas \"Pixel\" Noble" <pixel@nobis-crew.org>
Date: Fri, 16 Mar 2018 01:25:19 +0100
Subject: [PATCH 1/4] Changing to the powershell version of nvm for better
 support.

---
 install-nvm-windows.ps1 | 29 -----------------------------
 run-tests.bat           | 16 ++++++----------
 2 files changed, 6 insertions(+), 39 deletions(-)
 delete mode 100644 install-nvm-windows.ps1

diff --git a/install-nvm-windows.ps1 b/install-nvm-windows.ps1
deleted file mode 100644
index b3794055..00000000
--- a/install-nvm-windows.ps1
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2017 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# We're going to store nvm-windows in the .\nvm directory.
-$env:NVM_HOME = (Get-Item -Path ".\" -Verbose).FullName + "\nvm"
-
-# Switching to TLS/1.2 - see https://githubengineering.com/crypto-removal-notice/
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-
-# Downloading and unpacking nvm-windows
-Invoke-WebRequest -Uri https://github.com/coreybutler/nvm-windows/releases/download/1.1.5/nvm-noinstall.zip -OutFile nvm-noinstall.zip
-Add-Type -AssemblyName System.IO.Compression.FileSystem
-[System.IO.Compression.ZipFile]::ExtractToDirectory("nvm-noinstall.zip", "nvm")
-
-$env:Path = $env:NVM_HOME + ";" + $env:Path
-Out-File -Encoding "OEM" nvm\settings.txt
-nvm root $env:NVM_HOME
-"%*" | Out-File -Encoding "OEM" nvm\elevate.cmd
diff --git a/run-tests.bat b/run-tests.bat
index 547899e7..baf21778 100644
--- a/run-tests.bat
+++ b/run-tests.bat
@@ -15,26 +15,22 @@
 SET ROOT=%~dp0
 cd /d %~dp0
 
-PowerShell -Command .\install-nvm-windows.ps1
+powershell -c "& { iwr https://raw.githubusercontent.com/grumpycoders/nvm-ps/master/nvm.ps1 | iex }"
 
-SET NVM_HOME=%ROOT%nvm
-SET NVM_SYMLINK=%ROOT%nvm\nodejs
-SET PATH=%NVM_HOME%;%NVM_SYMLINK%;%PATH%
+SET PATH=%APPDATA%\nvm-ps;%APPDATA%\nvm-ps\nodejs;%PATH%
 SET JOBS=8
 
-nvm version
+call nvm version
 
-nvm install 8.5.0
-nvm use 8.5.0
+call nvm install 8
 
 call npm install || goto :error
 
 SET JUNIT_REPORT_STACK=1
 SET FAILED=0
 
-for %%v in (4.8.4 6.11.3 7.9.0 8.5.0) do (
-  nvm install %%v
-  nvm use %%v
+for %%v in (4 6 7 8) do (
+  call nvm install %%v
   call npm install -g npm
   node -e "console.log(process.versions)"
 

From dc071f906bd818039c98e95acf26a853e99d8ee4 Mon Sep 17 00:00:00 2001
From: "Nicolas \"Pixel\" Noble" <pixel@nobis-crew.org>
Date: Fri, 16 Mar 2018 01:33:46 +0100
Subject: [PATCH 2/4] Debugging info.

---
 run-tests.bat | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/run-tests.bat b/run-tests.bat
index baf21778..81de8d25 100644
--- a/run-tests.bat
+++ b/run-tests.bat
@@ -15,6 +15,8 @@
 SET ROOT=%~dp0
 cd /d %~dp0
 
+powershell -c "Get-Host"
+powershell -c "$PSVersionTable"
 powershell -c "& { iwr https://raw.githubusercontent.com/grumpycoders/nvm-ps/master/nvm.ps1 | iex }"
 
 SET PATH=%APPDATA%\nvm-ps;%APPDATA%\nvm-ps\nodejs;%PATH%

From 8c92bdbc33443762e308e744f2e25bc882e1438c Mon Sep 17 00:00:00 2001
From: "Nicolas \"Pixel\" Noble" <pixel@nobis-crew.org>
Date: Thu, 5 Apr 2018 01:41:23 +0200
Subject: [PATCH 3/4] Adding more environment details.

---
 run-tests.bat | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/run-tests.bat b/run-tests.bat
index 81de8d25..3f3aa4f1 100644
--- a/run-tests.bat
+++ b/run-tests.bat
@@ -17,6 +17,10 @@ cd /d %~dp0
 
 powershell -c "Get-Host"
 powershell -c "$PSVersionTable"
+powershell -c "[System.Environment]::OSVersion"
+powershell -c "Get-WmiObject -Class Win32_ComputerSystem"
+powershell -c "(Get-WmiObject -Class Win32_ComputerSystem).SystemType"
+
 powershell -c "& { iwr https://raw.githubusercontent.com/grumpycoders/nvm-ps/master/nvm.ps1 | iex }"
 
 SET PATH=%APPDATA%\nvm-ps;%APPDATA%\nvm-ps\nodejs;%PATH%

From aaf8696d4289312bbde74a85b2f9fc216b32eb42 Mon Sep 17 00:00:00 2001
From: "Nicolas \"Pixel\" Noble" <pixel@nobis-crew.org>
Date: Tue, 10 Apr 2018 00:08:43 +0200
Subject: [PATCH 4/4] Workarounding node-gyp issue.

---
 run-tests.bat            | 6 +++++-
 run-tests.sh             | 5 ++++-
 tools/release/kokoro.bat | 3 +++
 tools/release/kokoro.sh  | 3 +++
 4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/run-tests.bat b/run-tests.bat
index 3f3aa4f1..5aeaa700 100644
--- a/run-tests.bat
+++ b/run-tests.bat
@@ -29,15 +29,19 @@ SET JOBS=8
 call nvm version
 
 call nvm install 8
+call nvm use 8
 
 call npm install || goto :error
 
 SET JUNIT_REPORT_STACK=1
 SET FAILED=0
 
-for %%v in (4 6 7 8) do (
+for %%v in (4 6 7 8 9) do (
   call nvm install %%v
+  call nvm use %%v
   call npm install -g npm
+  @rem https://github.com/mapbox/node-pre-gyp/issues/362
+  call npm install -g node-gyp
   node -e "console.log(process.versions)"
 
   mkdir reports\node%%v
diff --git a/run-tests.sh b/run-tests.sh
index 1444158b..bfc0ff71 100755
--- a/run-tests.sh
+++ b/run-tests.sh
@@ -26,7 +26,7 @@ set -ex
 cd $ROOT
 
 if [ ! -n "$node_versions" ] ; then
-  node_versions="4 5 6 7 8"
+  node_versions="4 5 6 7 8 9"
 fi
 
 set +ex
@@ -51,6 +51,9 @@ do
   nvm use $version
   set -ex
 
+  # https://github.com/mapbox/node-pre-gyp/issues/362
+  npm install -g node-gyp
+
   mkdir -p "reports/node$version"
 
   node -e 'process.exit(process.version.startsWith("v'$version'") ? 0 : -1)'
diff --git a/tools/release/kokoro.bat b/tools/release/kokoro.bat
index 2726d338..1fde63b5 100644
--- a/tools/release/kokoro.bat
+++ b/tools/release/kokoro.bat
@@ -14,6 +14,9 @@
 
 @echo "Starting Windows build"
 
+@rem https://github.com/mapbox/node-pre-gyp/issues/362
+call npm install -g node-gyp
+
 cd /d %~dp0
 cd ..\..
 
diff --git a/tools/release/kokoro.sh b/tools/release/kokoro.sh
index e5b578f7..b89504a9 100755
--- a/tools/release/kokoro.sh
+++ b/tools/release/kokoro.sh
@@ -13,6 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# https://github.com/mapbox/node-pre-gyp/issues/362
+npm install -g node-gyp
+
 set -ex
 cd $(dirname $0)/../..
 base_dir=$(pwd)