diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 1fcd823..f930722 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -45,12 +45,53 @@ jobs: run: | $releaseId = "${{ steps.create_release.outputs.release_id }}" $filePath = "target\release\tickr.exe" - + $uri = "https://gitea.whitlocktech.com/api/v1/repos/whitlocktech/tickr/releases/$releaseId/assets?name=tickr.exe" + + $fileBytes = [System.IO.File]::ReadAllBytes((Resolve-Path $filePath)) + $boundary = [System.Guid]::NewGuid().ToString() + $LF = "`r`n" + + $bodyLines = @( + "--$boundary", + "Content-Disposition: form-data; name=`"attachment`"; filename=`"tickr.exe`"", + "Content-Type: application/octet-stream", + "", + [System.Text.Encoding]::Latin1.GetString($fileBytes), + "--$boundary--" + ) + + $bodyBytes = [System.Text.Encoding]::Latin1.GetBytes($bodyLines -join $LF) + Invoke-RestMethod ` - -Uri "https://gitea.whitlocktech.com/api/v1/repos/whitlocktech/tickr/releases/$releaseId/assets?name=tickr.exe" ` + -Uri $uri ` -Method Post ` - -Headers @{ - Authorization = "token ${{ secrets.RELEASE_TOKEN }}" - } ` - -InFile $filePath ` - -ContentType "application/octet-stream" \ No newline at end of file + -Headers @{ Authorization = "token ${{ secrets.RELEASE_TOKEN }}" } ` + -ContentType "multipart/form-data; boundary=$boundary" ` + -Body $bodyBytes- name: Upload binary asset + shell: powershell + run: | + $releaseId = "${{ steps.create_release.outputs.release_id }}" + $filePath = "target\release\tickr.exe" + $uri = "https://gitea.whitlocktech.com/api/v1/repos/whitlocktech/tickr/releases/$releaseId/assets?name=tickr.exe" + + $fileBytes = [System.IO.File]::ReadAllBytes((Resolve-Path $filePath)) + $boundary = [System.Guid]::NewGuid().ToString() + $LF = "`r`n" + + $bodyLines = @( + "--$boundary", + "Content-Disposition: form-data; name=`"attachment`"; filename=`"tickr.exe`"", + "Content-Type: application/octet-stream", + "", + [System.Text.Encoding]::Latin1.GetString($fileBytes), + "--$boundary--" + ) + + $bodyBytes = [System.Text.Encoding]::Latin1.GetBytes($bodyLines -join $LF) + + Invoke-RestMethod ` + -Uri $uri ` + -Method Post ` + -Headers @{ Authorization = "token ${{ secrets.RELEASE_TOKEN }}" } ` + -ContentType "multipart/form-data; boundary=$boundary" ` + -Body $bodyBytes \ No newline at end of file