From b99613f452d5c59bdf26de5b3c399f6d814f4ed3 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 21 Mar 2026 11:27:33 -0700 Subject: [PATCH] Fix Windows release upload: use curl for streaming large file uploads Invoke-RestMethod loads entire files into memory, causing connection failures on 360MB+ installer files. Switch to curl which streams the upload. Co-Authored-By: Claude Opus 4.6 --- .gitea/workflows/build-windows.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build-windows.yml b/.gitea/workflows/build-windows.yml index 76decac..1715a2d 100644 --- a/.gitea/workflows/build-windows.yml +++ b/.gitea/workflows/build-windows.yml @@ -128,12 +128,17 @@ jobs: } } catch {} - try { - Invoke-RestMethod -Uri "${REPO_API}/releases/${RELEASE_ID}/assets?name=${encodedName}" ` - -Method Post -Headers $Headers -ContentType "application/octet-stream" ` - -InFile $_.FullName + # Use curl for streaming upload (Invoke-RestMethod fails on large files) + $uploadUrl = "${REPO_API}/releases/${RELEASE_ID}/assets?name=${encodedName}" + $result = curl.exe --fail --silent --show-error ` + -X POST ` + -H "Authorization: token $env:BUILD_TOKEN" ` + -H "Content-Type: application/octet-stream" ` + --data-binary "@$($_.FullName)" ` + "$uploadUrl" 2>&1 + if ($LASTEXITCODE -eq 0) { Write-Host "Upload successful: ${filename}" - } catch { - Write-Host "WARNING: Upload failed for ${filename}: $_" + } else { + Write-Host "WARNING: Upload failed for ${filename}: ${result}" } }