@@ -22,45 +22,47 @@ jobs:
2222    strategy :
2323      fail-fast : false 
2424      matrix :
25-         python-version : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] 
26-         architecture : [x64, x86] 
25+         #  python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
26+         #  architecture: [x64, x86]
27+         python-version : ["3.11"] 
28+         architecture : [x64] 
2729
2830    steps :
2931      - uses : actions/checkout@v4 
3032
31-       - name : Set up Python ${{ matrix.python-version }} 
32-         uses : actions/setup-python@v5 
33-         with :
34-           python-version : ${{ matrix.python-version }} 
35-           architecture : ${{ matrix.architecture }} 
36-           cache : pip 
37-           cache-dependency-path : .github/workflows/main.yml 
38-           check-latest : true 
39- 
40-       - name : Fix user Scripts missing from PATH 
41-         if : matrix.architecture == 'x86' 
42-         run : | 
43-           # Work around https://github.com/actions/setup-python/issues/1005 
44-           $ScriptsPath = python -c "import sysconfig,os; print(sysconfig.get_path('scripts', f'{os.name}_user'))" 
45-           echo $ScriptsPath 
46-           Add-Content $env:GITHUB_PATH $ScriptsPath 
47- 
48-        - name : Build and install 
49-         run : pip install . -v --user 
50- 
51-       #  This needs to happen *after* installing pywin32 since
52-       #  AutoDuck/py2d.py currently relies on runtime imports for introspection
53-       #  This isn't included in the wheel (TODO: could we?)
54-       #  and only serves as a PR test for the docs.yaml workflow
55-       - name : Generate PyWin32.chm help file 
56-         run : python AutoDuck/make.py 
57- 
58-       #  Smokescreen test to validate postinstall doesn't crash, dlls can be found, and both pathless invocation methods work
59-       - name : Run postinstall install/remove 
60-         run : | 
61-           $UserSite = "$(python -m site --user-site)" 
62-           python -m win32.scripts.pywin32_postinstall -install -destination "$UserSite" 
63-           pywin32_postinstall -remove -destination "$UserSite" 
33+       #   - name: Set up Python ${{ matrix.python-version }}
34+       #     uses: actions/setup-python@v5
35+       #     with:
36+       #       python-version: ${{ matrix.python-version }}
37+       #       architecture: ${{ matrix.architecture }}
38+       #       cache: pip
39+       #       cache-dependency-path: .github/workflows/main.yml
40+       #       check-latest: true
41+ 
42+       #   - name: Fix user Scripts missing from PATH
43+       #     if: matrix.architecture == 'x86'
44+       #     run: |
45+       #       # Work around https://github.com/actions/setup-python/issues/1005
46+       #       $ScriptsPath = python -c "import sysconfig,os; print(sysconfig.get_path('scripts', f'{os.name}_user'))"
47+       #       echo $ScriptsPath
48+       #       Add-Content $env:GITHUB_PATH $ScriptsPath
49+ 
50+       #   - name: Build and install
51+       #     run: pip install . -v --user
52+ 
53+       #  #  This needs to happen *after* installing pywin32 since
54+       #  #  AutoDuck/py2d.py currently relies on runtime imports for introspection
55+       #  #  This isn't included in the wheel (TODO: could we?)
56+       #  #  and only serves as a PR test for the docs.yaml workflow
57+       #   - name: Generate PyWin32.chm help file
58+       #     run: python AutoDuck/make.py
59+ 
60+       #  #  Smokescreen test to validate postinstall doesn't crash, dlls can be found, and both pathless invocation methods work
61+       #   - name: Run postinstall install/remove
62+       #     run: |
63+       #       $UserSite = "$(python -m site --user-site)"
64+       #       python -m win32.scripts.pywin32_postinstall -install -destination "$UserSite"
65+       #       pywin32_postinstall -remove -destination "$UserSite"
6466
6567      #  Compilation and registration of the PyCOMTest server dll
6668      - name : Set up MSVC 
@@ -75,11 +77,11 @@ jobs:
7577          [string]$ComponentsToAdd = @( 
7678            "Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL" 
7779          ) | ForEach-Object {"--add $_"} 
78-           $ArgumentList = ('modify', '--installPath', "`"$VsInstallPath`"", $ComponentsToAdd, '--quiet', '--norestart', '--nocache') 
79-           echo "vs_installer .exe $($ArgumentList -join ' ')" 
80+           $ArgumentList = ('/c', "vs_installer.exe", ' modify', '--installPath', "`"$VsInstallPath`"", $ComponentsToAdd, '--quiet', '--norestart', '--nocache') 
81+           echo "cmd .exe $($ArgumentList -join ' ')" 
8082          # should be run twice for some reason 
81-           Start-Process -FilePath vs_installer .exe -ArgumentList $ArgumentList -Wait -PassThru -WindowStyle Hidden 
82-           Start-Process -FilePath vs_installer .exe -ArgumentList $ArgumentList -Wait -PassThru -WindowStyle Hidden 
83+           Start-Process -FilePath cmd .exe -ArgumentList $ArgumentList -Wait -PassThru -WindowStyle Hidden 
84+           Start-Process -FilePath cmd .exe -ArgumentList $ArgumentList -Wait -PassThru -WindowStyle Hidden 
8385
8486       - name : Build and register the PyCOMTest server dll 
8587        run : | 
@@ -102,119 +104,119 @@ jobs:
102104          path : dist/*.whl 
103105          if-no-files-found : error 
104106
105-   #  We cannot build and test on ARM64, so we cross-compile.
106-   #  Later, when available, we can add tests using this wheel on ARM64 VMs
107-   build_arm64 :
108-     name : Cross-compile ARM 
109-     runs-on : windows-2022 
110-     timeout-minutes : 20 
111-     strategy :
112-       fail-fast : false 
113-       matrix :
114-         python-version : ["3.10", "3.11", "3.12", "3.13"] 
115-     steps :
116-       - uses : actions/checkout@v4 
117- 
118-       - name : Set up Python ${{ matrix.python-version }} 
119-         uses : actions/setup-python@v5 
120-         with :
121-           python-version : ${{ matrix.python-version }} 
122-           architecture : " x64" 
123-           cache : pip 
124-           cache-dependency-path : .github/workflows/main.yml 
125-           check-latest : true 
126- 
127-       - name : Install build module 
128-         run : pip install --upgrade  build 
129- 
130-       - name : Obtain ARM64 library files 
131-         run : python .github\workflows\download-arm64-libs.py .\arm64libs 
132- 
133-       - name : Build wheels 
134-         run : python -m build --wheel --config-setting=--build-option=build_ext --config-setting=--build-option=-L.\arm64libs --config-setting=--build-option=--plat-name=win-arm64 --config-setting=--build-option=build --config-setting=--build-option=--plat-name=win-arm64 --config-setting=--build-option=bdist_wheel --config-setting=--build-option=--plat-name=win-arm64 
135- 
136-       - uses : actions/upload-artifact@v4 
137-         with :
138-           name : artifacts-${{ matrix.python-version }}-arm64 
139-           path : dist/*.whl 
140-           if-no-files-found : error 
141- 
142-   merge :
143-     runs-on : windows-latest 
144-     needs : [test, build_arm64] 
145-     steps :
146-       - name : Merge Artifacts 
147-         uses : actions/upload-artifact/merge@v4 
148-         with :
149-           name : artifacts 
150-           pattern : artifacts-* 
151-       - name : Delete standalone Artifacts 
152-         uses : geekyeggo/delete-artifact@v5 
153-         with :
154-           name : artifacts-* 
155- 
156-   #  This job can be run locally by running `pre-commit run`
157-   checkers :
158-     runs-on : windows-2022 
159-     timeout-minutes : 20 
160-     steps :
161-       - uses : actions/checkout@v4 
162-       - uses : actions/setup-python@v5 
163-         with :
164-           #  This job only needs to target the oldest supported version
165-           python-version : " 3.8" 
166-           cache : pip 
167-           cache-dependency-path : .github/workflows/main.yml 
168-       - run : pip install clang-format==18.1.* pycln 
169-       - run : pycln . --config=pycln.toml --check 
170-       - uses : astral-sh/ruff-action@v3 
171-         with :
172-           version : " 0.8.4" 
173-       - run : ruff format --check 
174-       #  Too many files to fit in a single command, also exclude vendored Scintilla and MAPIStubLibrary
175-       - run : | 
176-           clang-format --Werror --dry-run $(git ls-files '*.cpp' ':!:com/win32comext/mapi/src/MAPIStubLibrary/') 
177-           if ($LastExitCode -ne 0) { exit $LastExitCode } 
178-           clang-format --Werror --dry-run $(git ls-files '*.h' ':!:Pythonwin/Scintilla/' ':!:com/win32comext/mapi/src/MAPIStubLibrary/') 
179-           if ($LastExitCode -ne 0) { exit $LastExitCode } 
180- 
181-    mypy :
182-     runs-on : windows-2022 
183-     timeout-minutes : 20 
184-     strategy :
185-       fail-fast : false 
186-       matrix :
187-         python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"] 
188-     steps :
189-       - uses : actions/checkout@v4 
190-       - uses : actions/setup-python@v5 
191-         with :
192-           python-version : ${{ matrix.python-version }} 
193-           cache : pip 
194-           cache-dependency-path : .github/workflows/main.yml 
195-           check-latest : true 
196-       - run : pip install types-setuptools PyOpenGL mypy[faster-cache]==1.14.* 
197-       - run : mypy . --python-version=${{ matrix.python-version }} 
198- 
199-   pyright :
200-     runs-on : windows-2022 
201-     timeout-minutes : 20 
202-     strategy :
203-       fail-fast : false 
204-       matrix :
205-         python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"] 
206-     steps :
207-       - uses : actions/checkout@v4 
208-       - uses : actions/setup-python@v5 
209-         with :
210-           python-version : ${{ matrix.python-version }} 
211-           cache : pip 
212-           cache-dependency-path : .github/workflows/main.yml 
213-           check-latest : true 
214-       #  pyright vendors typeshed, but let's make sure we have the most up to date stubs
215-       - run : pip install types-setuptools PyOpenGL 
216-       - uses : jakebailey/pyright-action@v2 
217-         with :
218-           python-version : ${{ matrix.python-version }} 
219-           version : " 1.1.396" 
220-           annotate : errors 
107+   #  #  We cannot build and test on ARM64, so we cross-compile.
108+   #  #  Later, when available, we can add tests using this wheel on ARM64 VMs
109+   #   build_arm64:
110+   #     name: Cross-compile ARM
111+   #     runs-on: windows-2022
112+   #     timeout-minutes: 20
113+   #     strategy:
114+   #       fail-fast: false
115+   #       matrix:
116+   #         python-version: ["3.10", "3.11", "3.12", "3.13"]
117+   #     steps:
118+   #       - uses: actions/checkout@v4
119+ 
120+   #       - name: Set up Python ${{ matrix.python-version }}
121+   #         uses: actions/setup-python@v5
122+   #         with:
123+   #           python-version: ${{ matrix.python-version }}
124+   #           architecture: "x64"
125+   #           cache: pip
126+   #           cache-dependency-path: .github/workflows/main.yml
127+   #           check-latest: true
128+ 
129+   #       - name: Install build module
130+   #         run: pip install --upgrade  build
131+ 
132+   #       - name: Obtain ARM64 library files
133+   #         run: python .github\workflows\download-arm64-libs.py .\arm64libs
134+ 
135+   #       - name: Build wheels
136+   #         run: python -m build --wheel --config-setting=--build-option=build_ext --config-setting=--build-option=-L.\arm64libs --config-setting=--build-option=--plat-name=win-arm64 --config-setting=--build-option=build --config-setting=--build-option=--plat-name=win-arm64 --config-setting=--build-option=bdist_wheel --config-setting=--build-option=--plat-name=win-arm64
137+ 
138+   #       - uses: actions/upload-artifact@v4
139+   #         with:
140+   #           name: artifacts-${{ matrix.python-version }}-arm64
141+   #           path: dist/*.whl
142+   #           if-no-files-found: error
143+ 
144+   #   merge:
145+   #     runs-on: windows-latest
146+   #     needs: [test, build_arm64]
147+   #     steps:
148+   #       - name: Merge Artifacts
149+   #         uses: actions/upload-artifact/merge@v4
150+   #         with:
151+   #           name: artifacts
152+   #           pattern: artifacts-*
153+   #       - name: Delete standalone Artifacts
154+   #         uses: geekyeggo/delete-artifact@v5
155+   #         with:
156+   #           name: artifacts-*
157+ 
158+   #  #  This job can be run locally by running `pre-commit run`
159+   #   checkers:
160+   #     runs-on: windows-2022
161+   #     timeout-minutes: 20
162+   #     steps:
163+   #       - uses: actions/checkout@v4
164+   #       - uses: actions/setup-python@v5
165+   #         with:
166+   #           # This job only needs to target the oldest supported version
167+   #           python-version: "3.8"
168+   #           cache: pip
169+   #           cache-dependency-path: .github/workflows/main.yml
170+   #       - run: pip install clang-format==18.1.* pycln
171+   #       - run: pycln . --config=pycln.toml --check
172+   #       - uses: astral-sh/ruff-action@v3
173+   #         with:
174+   #           version: "0.8.4"
175+   #       - run: ruff format --check
176+   #       # Too many files to fit in a single command, also exclude vendored Scintilla and MAPIStubLibrary
177+   #       - run: |
178+   #           clang-format --Werror --dry-run $(git ls-files '*.cpp' ':!:com/win32comext/mapi/src/MAPIStubLibrary/')
179+   #           if ($LastExitCode -ne 0) { exit $LastExitCode }
180+   #           clang-format --Werror --dry-run $(git ls-files '*.h' ':!:Pythonwin/Scintilla/' ':!:com/win32comext/mapi/src/MAPIStubLibrary/')
181+   #           if ($LastExitCode -ne 0) { exit $LastExitCode }
182+ 
183+   #   mypy:
184+   #     runs-on: windows-2022
185+   #     timeout-minutes: 20
186+   #     strategy:
187+   #       fail-fast: false
188+   #       matrix:
189+   #         python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
190+   #     steps:
191+   #       - uses: actions/checkout@v4
192+   #       - uses: actions/setup-python@v5
193+   #         with:
194+   #           python-version: ${{ matrix.python-version }}
195+   #           cache: pip
196+   #           cache-dependency-path: .github/workflows/main.yml
197+   #           check-latest: true
198+   #       - run: pip install types-setuptools PyOpenGL mypy[faster-cache]==1.14.*
199+   #       - run: mypy . --python-version=${{ matrix.python-version }}
200+ 
201+   #   pyright:
202+   #     runs-on: windows-2022
203+   #     timeout-minutes: 20
204+   #     strategy:
205+   #       fail-fast: false
206+   #       matrix:
207+   #         python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
208+   #     steps:
209+   #       - uses: actions/checkout@v4
210+   #       - uses: actions/setup-python@v5
211+   #         with:
212+   #           python-version: ${{ matrix.python-version }}
213+   #           cache: pip
214+   #           cache-dependency-path: .github/workflows/main.yml
215+   #           check-latest: true
216+   #       # pyright vendors typeshed, but let's make sure we have the most up to date stubs
217+   #       - run: pip install types-setuptools PyOpenGL
218+   #       - uses: jakebailey/pyright-action@v2
219+   #         with:
220+   #           python-version: ${{ matrix.python-version }}
221+   #           version: "1.1.396"
222+   #           annotate: errors
0 commit comments