SDL: ci: pin MSVC ARM Windows SDK version to 10.0.22621.0

From bd57cfdb55c70c7f3eda5673f0255c54b695ca3c Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 17 Nov 2024 19:18:06 +0100
Subject: [PATCH] ci: pin MSVC ARM Windows SDK version to 10.0.22621.0

---
 .github/workflows/create-test-plan.py | 15 +++++++++------
 .github/workflows/generic.yml         |  3 ++-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/create-test-plan.py b/.github/workflows/create-test-plan.py
index 8b3638ddd1409..eb92239849ed6 100755
--- a/.github/workflows/create-test-plan.py
+++ b/.github/workflows/create-test-plan.py
@@ -205,7 +205,8 @@ class JobDetails:
     msys2_env: str = ""
     msys2_no_perl: bool = False
     werror: bool = True
-    msvc_vcvars: str = ""
+    msvc_vcvars_arch: str = ""
+    msvc_vcvars_sdk: str = ""
     msvc_project: str = ""
     msvc_project_flags: list[str] = dataclasses.field(default_factory=list)
     setup_ninja: bool = False
@@ -267,7 +268,8 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
             "android-mk": self.android_mk,
             "werror": self.werror,
             "sudo": self.sudo,
-            "msvc-vcvars": self.msvc_vcvars,
+            "msvc-vcvars-arch": self.msvc_vcvars_arch,
+            "msvc-vcvars-sdk": self.msvc_vcvars_sdk,
             "msvc-project": self.msvc_project,
             "msvc-project-flags": my_shlex_join(self.msvc_project_flags),
             "setup-ninja": self.setup_ninja,
@@ -391,14 +393,15 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
                 job.msvc_project_flags.append(f"-p:Platform={msvc_platform}")
             match spec.msvc_arch:
                 case MsvcArch.X86:
-                    job.msvc_vcvars = "x64_x86"
+                    job.msvc_vcvars_arch = "x64_x86"
                 case MsvcArch.X64:
-                    job.msvc_vcvars = "x64"
+                    job.msvc_vcvars_arch = "x64"
                 case MsvcArch.Arm32:
-                    job.msvc_vcvars = "x64_arm"
+                    job.msvc_vcvars_arch = "x64_arm"
+                    job.msvc_vcvars_sdk = "10.0.22621.0"  # 10.0.26100.0 dropped ARM32 um and ucrt libraries
                     job.run_tests = False
                 case MsvcArch.Arm64:
-                    job.msvc_vcvars = "x64_arm64"
+                    job.msvc_vcvars_arch = "x64_arm64"
                     job.run_tests = False
             if spec.gdk:
                 job.setup_gdk_folder = "VisualC-GDK"
diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml
index bf5a95d518e82..1398bca8381d5 100644
--- a/.github/workflows/generic.yml
+++ b/.github/workflows/generic.yml
@@ -90,7 +90,8 @@ jobs:
       - uses: ilammy/msvc-dev-cmd@v1
         if: ${{ matrix.platform.platform == 'msvc' }}
         with:
-          arch: ${{ matrix.platform.msvc-vcvars }}
+          arch: ${{ matrix.platform.msvc-vcvars-arch }}
+          sdk: ${{ matrix.platform.msvc-vcvars-sdk }}
       - name: 'Set up Windows GDK Desktop'
         uses: ./.github/actions/setup-gdk-desktop
         if: ${{ matrix.platform.setup-gdk-folder != '' }}