1717jobs :
1818  test :
1919    name : Build and test 
20-     runs-on : windows-2019  
21-     timeout-minutes : 20 
20+     runs-on : windows-2022  
21+     timeout-minutes : 25 
2222    strategy :
2323      fail-fast : false 
2424      matrix :
2525        python-version : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] 
26-         architecture : [" x64", " x86" ] 
26+         architecture : [x64,  x86] 
2727
2828    steps :
2929      - uses : actions/checkout@v4 
@@ -63,14 +63,16 @@ jobs:
6363          pywin32_postinstall -remove -destination "$UserSite" 
6464
6565       #  Compilation and registration of the PyCOMTest server dll
66-       - name : Set up MSVC 
66+       - name : Add msbuild to PATH 
6767        uses : microsoft/setup-msbuild@v2 
68+ 
69+       - name : Install missing Visual Studio components 
70+         run : python .github\workflows\install-vs-components.py 
71+ 
6872      - name : Build and register the PyCOMTest server dll 
6973        run : | 
70-           cd com/TestSources/PyCOMTest 
71-           msbuild .\PyCOMTest.sln -property:Configuration=Release 
72-           cd x64/Release 
73-           regsvr32 .\PyCOMTest.dll 
74+           msbuild com/TestSources/PyCOMTest/PyCOMTest.sln -property:Configuration=Release 
75+           regsvr32 com/TestSources/PyCOMTest/x64/Release/PyCOMTest.dll 
7476
7577       - name : Run tests 
7678        #  Run the tests directly from the source dir so support files (eg, .wav files etc)
9294  #  Later, when available, we can add tests using this wheel on ARM64 VMs
9395  build_arm64 :
9496    name : Cross-compile ARM 
95-     runs-on : windows-2019  
96-     timeout-minutes : 20 
97+     runs-on : windows-2022  
98+     timeout-minutes : 25 
9799    strategy :
98100      fail-fast : false 
99101      matrix :
@@ -142,8 +144,8 @@ jobs:
142144
143145  #  This job can be run locally by running `pre-commit run`
144146  checkers :
145-     runs-on : windows-2019  
146-     timeout-minutes : 20 
147+     runs-on : windows-2022  
148+     timeout-minutes : 25 
147149    steps :
148150      - uses : actions/checkout@v4 
149151      - uses : actions/setup-python@v5 
@@ -174,8 +176,8 @@ jobs:
174176        if: ${{ !cancelled() }} 
175177
176178   mypy :
177-     runs-on : windows-2019  
178-     timeout-minutes : 20 
179+     runs-on : windows-2022  
180+     timeout-minutes : 25 
179181    strategy :
180182      fail-fast : false 
181183      matrix :
@@ -192,8 +194,8 @@ jobs:
192194      - run : mypy . --python-version=${{ matrix.python-version }} 
193195
194196  pyright :
195-     runs-on : windows-2019  
196-     timeout-minutes : 20 
197+     runs-on : windows-2022  
198+     timeout-minutes : 25 
197199    strategy :
198200      fail-fast : false 
199201      matrix :
0 commit comments