3737 PANDOC : " 0"
3838 ARTIFACT_NAME_313 : " publish_313dot"
3939 ARTIFACT_NAME_314 : " publish_314dot"
40- python_sourcef_313 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
41- python_sha256f_313 : " 3cdf2ad27fdeea2592b63e5a658aa65733b028a55332fa1aa27be4ce8aef96c0"
42- python_sourcef_314 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
43- python_sha256f_314 : " a64800cbfbf1c384b9ac7eb5964a9a4c37537791e7ac80eb66b03ccb6f2c2e80"
4440 WINPYARCH : " 64"
4541 WINPYVERSION_313 : " 313"
4642 WINPYVERSION_314 : " 314"
6056 PANDOC : " 1"
6157 ARTIFACT_NAME_313 : " publish_313slim"
6258 ARTIFACT_NAME_314 : " publish_314slim"
63- python_sourcef_313 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
64- python_sha256f_313 : " 3cdf2ad27fdeea2592b63e5a658aa65733b028a55332fa1aa27be4ce8aef96c0"
65- python_sourcef_314 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
66- python_sha256f_314 : " a64800cbfbf1c384b9ac7eb5964a9a4c37537791e7ac80eb66b03ccb6f2c2e80"
6759 WINPYARCH : " 64"
6860 WINPYVERSION_313 : " 313"
6961 WINPYVERSION_314 : " 314"
8375 PANDOC : " 0"
8476 ARTIFACT_NAME_313 : " publish_313whl"
8577 ARTIFACT_NAME_314 : " publish_314whl"
86- python_sourcef_313 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
87- python_sha256f_313 : " 3cdf2ad27fdeea2592b63e5a658aa65733b028a55332fa1aa27be4ce8aef96c0"
88- python_sourcef_314 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
89- python_sha256f_314 : " a64800cbfbf1c384b9ac7eb5964a9a4c37537791e7ac80eb66b03ccb6f2c2e80"
9078 WINPYARCH : " 64"
9179 WINPYVERSION_313 : " 313"
9280 WINPYVERSION_314 : " 314"
@@ -106,10 +94,6 @@ jobs:
10694 PANDOC : " 0"
10795 ARTIFACT_NAME_313 : " "
10896 ARTIFACT_NAME_314 : " publish_314free"
109- python_sourcef_313 : " "
110- python_sha256f_313 : " "
111- python_sourcef_314 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst"
112- python_sha256f_314 : " b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0"
11397 WINPYARCH : " 64"
11498 WINPYVERSION_313 : " "
11599 WINPYVERSION_314 : " 314"
@@ -129,10 +113,6 @@ jobs:
129113 PANDOC : " 0"
130114 ARTIFACT_NAME_313 : " "
131115 ARTIFACT_NAME_314 : " publish_314slimf"
132- python_sourcef_313 : " "
133- python_sha256f_313 : " "
134- python_sourcef_314 : " https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst"
135- python_sha256f_314 : " b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0"
136116 WINPYARCH : " 64"
137117 WINPYVERSION_313 : " "
138118 WINPYVERSION_314 : " 314"
@@ -151,41 +131,63 @@ jobs:
151131 run : |
152132 PYTHON_VERSION="${{ github.event.inputs.python_version }}"
153133 FLAVOR="${{ matrix.flavor.name }}"
134+ WINPYARCH="${{ matrix.flavor.WINPYARCH }}"
135+
136+ # Populate generic per-flavor / per-version selections
154137 if [ "$PYTHON_VERSION" = "3.13" ]; then
155138 echo "WINPYrequirements=${{ matrix.flavor.REQUIREMENTS_313 }}" >> $GITHUB_ENV
156139 echo "WINPYrequirementswhl=${{ matrix.flavor.REQUIREMENTS_WHL_313 }}" >> $GITHUB_ENV
157140 echo "ARTIFACT_NAME=${{ matrix.flavor.ARTIFACT_NAME_313 }}" >> $GITHUB_ENV
158- echo "python_sourcef=${{ matrix.flavor.python_sourcef_313 }}" >> $GITHUB_ENV
159- echo "python_sha256f=${{ matrix.flavor.python_sha256f_313 }}" >> $GITHUB_ENV
160141 echo "WINPYVERSION=${{ matrix.flavor.WINPYVERSION_313 }}" >> $GITHUB_ENV
161142 echo "WINPYVER2=${{ matrix.flavor.WINPYVER2_313 }}" >> $GITHUB_ENV
162143 echo "build_location=${{ matrix.flavor.build_location_313 }}" >> $GITHUB_ENV
163144 echo "destwheelhouse=${{ matrix.flavor.build_location_313 }}\\wheelhouse\\included.wheels" >> $GITHUB_ENV
164145 echo "WINPYVER=${{ matrix.flavor.WINPYVER2_313 }}${{ matrix.flavor.name }}${{ matrix.flavor.my_release_level }}" >> $GITHUB_ENV
165- else
146+ elif [ "$PYTHON_VERSION" = "3.14" ]; then
166147 echo "WINPYrequirements=${{ matrix.flavor.REQUIREMENTS_314 }}" >> $GITHUB_ENV
167148 echo "WINPYrequirementswhl=${{ matrix.flavor.REQUIREMENTS_WHL_314 }}" >> $GITHUB_ENV
168149 echo "ARTIFACT_NAME=${{ matrix.flavor.ARTIFACT_NAME_314 }}" >> $GITHUB_ENV
169- echo "python_sourcef=${{ matrix.flavor.python_sourcef_314 }}" >> $GITHUB_ENV
170- echo "python_sha256f=${{ matrix.flavor.python_sha256f_314 }}" >> $GITHUB_ENV
171150 echo "WINPYVERSION=${{ matrix.flavor.WINPYVERSION_314 }}" >> $GITHUB_ENV
172151 echo "WINPYVER2=${{ matrix.flavor.WINPYVER2_314 }}" >> $GITHUB_ENV
173152 echo "build_location=${{ matrix.flavor.build_location_314 }}" >> $GITHUB_ENV
174153 echo "destwheelhouse=${{ matrix.flavor.build_location_314 }}\\wheelhouse\\included.wheels" >> $GITHUB_ENV
175154 echo "WINPYVER=${{ matrix.flavor.WINPYVER2_314 }}${{ matrix.flavor.name }}${{ matrix.flavor.my_release_level }}" >> $GITHUB_ENV
176155 fi
177- echo "WINPYARCH=${{ matrix.flavor. WINPYARCH }} " >> $GITHUB_ENV
156+ echo "WINPYARCH=$WINPYARCH" >> $GITHUB_ENV
178157 echo "WINPYFLAVOR=$FLAVOR" >> $GITHUB_ENV
179158 echo "WINPYZIP=${{ matrix.flavor.ZIP }}" >> $GITHUB_ENV
180159 echo "WINPY7Z=${{ matrix.flavor.SEVEN_Z }}" >> $GITHUB_ENV
181160 echo "WINPYEXE=${{ matrix.flavor.EXE }}" >> $GITHUB_ENV
182161 echo "PANDOC=${{ matrix.flavor.PANDOC }}" >> $GITHUB_ENV
183162 echo "my_release_level=${{ matrix.flavor.my_release_level }}" >> $GITHUB_ENV
184-
163+
164+ # constants
185165 echo "dotwheelhouse=dotpython\\wheelhouse\\included.wheels" >> $GITHUB_ENV
186166 echo "pandoc_source=https://github.com/jgm/pandoc/releases/download/3.1.9/pandoc-3.1.9-windows-x86_64.zip" >> $GITHUB_ENV
187167 echo "pandoc_sha256=11eb6dbe5286c9e5edb0cca4412e7d99ec6578ec04158b0b7fe11f7fd96688e5" >> $GITHUB_ENV
188168
169+ # Centralized mapping of python binaries and SHAs by version and arch.
170+ # NOTE: fill the 3.15 URLs and SHA values when available.
171+ # 3.13 x64 (example)
172+ if [ "$PYTHON_VERSION" = "3.13" ] && [ "$WINPYARCH" = "64" ]; then
173+ echo "python_source=https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" >> $GITHUB_ENV
174+ echo "python_sha256=3cdf2ad27fdeea2592b63e5a658aa65733b028a55332fa1aa27be4ce8aef96c0" >> $GITHUB_ENV
175+ fi
176+
177+ # 3.14 x64 (existing)
178+ if [ "$PYTHON_VERSION" = "3.14" ] && [ "$WINPYARCH" = "64" ]; then
179+ echo "python_source=https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" >> $GITHUB_ENV
180+ echo "python_sha256=a64800cbfbf1c384b9ac7eb5964a9a4c37537791e7ac80eb66b03ccb6f2c2e80" >> $GITHUB_ENV
181+ fi
182+
183+ # 3.14 i686 - user provided URL (example for preparing i686 builds).
184+ # SHA not provided here: fill the correct SHA for security, otherwise the workflow will skip SHA check.
185+ if [ "$PYTHON_VERSION" = "3.14" ] && [ "$WINPYARCH" = "32" ]; then
186+ echo "python_source=https://github.com/astral-sh/python-build-standalone/releases/download/20251120/cpython-3.14.0+20251120-i686-pc-windows-msvc-install_only_stripped.tar.gz" >> $GITHUB_ENV
187+ echo "python_sha256=" >> $GITHUB_ENV
188+ fi
189+
190+
189191 - name : See variables
190192 if : env.ARTIFACT_NAME != ''
191193 shell : pwsh
@@ -221,11 +223,11 @@ jobs:
221223 if : env.ARTIFACT_NAME != ''
222224 shell : pwsh
223225 run : |
224- Write-Output "python_sourcef used is $env:python_sourcef "
225- curl.exe -L -o "python-3-embed.tar.gz" $env:python_sourcef
226+ Write-Output "python_source used is $env:python_source "
227+ curl.exe -L -o "python-3-embed.tar.gz" $env:python_source
226228 # Calculate SHA256 hash
227229 $filePath = "python-3-embed.tar.gz"
228- $expectedHash = $env:python_sha256f
230+ $expectedHash = $env:python_sha256
229231
230232 $hashObject = Get-FileHash -Path $filePath -Algorithm SHA256
231233 $actualHash = $hashObject.Hash.ToLower()
@@ -278,8 +280,6 @@ jobs:
278280 if : env.ARTIFACT_NAME != '' && env.PANDOC == '1'
279281 shell : pwsh
280282 run : |
281- # Define the URL for the Pandoc binary and the target path
282- $pandocUrl = "https://github.com/jgm/pandoc/releases/download/3.1.9/pandoc-3.1.9-windows-x86_64.zip"
283283 $pandocZipPath = "pandoc.zip"
284284 $tempDir = "pandoc_temp"
285285 $targetDir = "$env:build_location\t"
0 commit comments