ci: De-duplicate Windows test script for NMake job

Move job-specific setup to an environment script.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fb2bf01..b26172d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1051,7 +1051,7 @@
 t:windows-vs2022-x64-nmake:
     extends:
         - .windows_vs2022_x64_nmake
-        - .cmake_test_windows_nmake
+        - .cmake_test_windows_external
         - .windows_x86_64_tags_concurrent_vs2022
         - .cmake_junit_artifacts
         - .run_dependent
diff --git a/.gitlab/ci/env_windows_vs2022_x64_nmake.ps1 b/.gitlab/ci/env_windows_vs2022_x64_nmake.ps1
new file mode 100755
index 0000000..62463cd
--- /dev/null
+++ b/.gitlab/ci/env_windows_vs2022_x64_nmake.ps1
@@ -0,0 +1 @@
+Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1
diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml
index b915d4b..aa817d0 100644
--- a/.gitlab/os-windows.yml
+++ b/.gitlab/os-windows.yml
@@ -385,13 +385,3 @@
         - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake
 
     interruptible: true
-
-.cmake_test_windows_nmake:
-    stage: test-ext
-
-    script:
-        - . .gitlab/ci/env.ps1
-        - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1
-        - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake
-
-    interruptible: true