Release tooling: slim CI-built runtime, LAN Forgejo uploads.

- The GitHub runner's toolcache keeps python-3.12.x-amd64.exe (~25MB) and
  _test*.pyd next to python.exe; exclude them so CI Setups match local
  ones (0.4.18 CI build was 70MB vs 44MB local).
- publish_forgejo_release.ps1: curl --noproxy for the Forgejo host; a
  desktop HTTP(S)_PROXY returned 502 for the LAN address.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
oliver 2026-10-14 01:06:45 +08:00
parent 98c1a1c453
commit aac4521766
2 changed files with 6 additions and 2 deletions

View file

@ -242,7 +242,9 @@ if ($CreateVenv) {
# Keep ensurepip - venv creation needs it. Same result on CI and local builds.
$xdRuntime = @("Doc", "tcl", "Tools", "Lib\test", "Lib\idlelib", "Lib\tkinter", "Lib\turtledemo") |
ForEach-Object { Join-Path $prefix $_ }
$xfRuntime = @("_tkinter.pyd", "tcl86t.dll", "tk86t.dll", "*.pyc")
# python-*.exe: the GitHub runner's toolcache keeps the full Python installer (~25MB)
# in the prefix; _test*.pyd: stdlib test extensions.
$xfRuntime = @("_tkinter.pyd", "tcl86t.dll", "tk86t.dll", "*.pyc", "python-*.exe", "_test*.pyd", "_ctypes_test.pyd", "xxlimited*.pyd")
& $robocopy $prefix $rtDir /E /XD $spEx __pycache__ @xdRuntime /XF @xfRuntime /NFL /NDL /NJH /NJS /nc /ns /np | Out-Null
if ($LASTEXITCODE -ge 8) { throw "robocopy_python_runtime_failed: exit $LASTEXITCODE" }

View file

@ -115,7 +115,9 @@ function Upload-ForgejoAsset {
$curl = Get-Command curl.exe -ErrorAction SilentlyContinue
if (-not $curl) { throw "curl.exe required for asset upload" }
# --ssl-no-revoke: schannel CRYPT_E_REVOCATION_OFFLINE often fails via proxy/offline CA.
& $curl.Source -f -sS --ssl-no-revoke -X POST `
# --noproxy: a desktop proxy in HTTP(S)_PROXY cannot reach a LAN Forgejo (502).
$forgejoHost = ([Uri]$ForgejoBase).Host
& $curl.Source -f -sS --ssl-no-revoke --noproxy $forgejoHost -X POST `
-H "Authorization: token $Token" `
-F "attachment=@$Path" `
$url