- Add cross-platform support for Windows (vcpkg) and Linux (system packages) - Improve dependency handling for cryptopp and nlohmann-json - Update build scripts for better release management - Enhance CHANGELOG.md with latest version information
48 lines
1.4 KiB
PowerShell
48 lines
1.4 KiB
PowerShell
param(
|
|
[Parameter(Mandatory=$true)][string]$Server,
|
|
[Parameter(Mandatory=$true)][string]$Owner,
|
|
[Parameter(Mandatory=$true)][string]$Repo,
|
|
[Parameter(Mandatory=$true)][string]$Token,
|
|
[Parameter(Mandatory=$true)][string]$ZipPath
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
if (-not (Test-Path -LiteralPath $ZipPath)) {
|
|
throw "ZIP not found: $ZipPath"
|
|
}
|
|
|
|
$headers = @{ Authorization = "token $Token" }
|
|
|
|
$latestUrl = "$Server/api/v1/repos/$Owner/$Repo/releases/latest"
|
|
$latest = Invoke-RestMethod -Headers $headers -Method GET -Uri $latestUrl
|
|
if (-not $latest -or -not $latest.id) {
|
|
throw "Failed to get latest release from $latestUrl"
|
|
}
|
|
|
|
$rid = [string]$latest.id
|
|
$name = [System.IO.Path]::GetFileName($ZipPath)
|
|
$escapedName = [System.Uri]::EscapeDataString($name)
|
|
$uploadUrl = "$Server/api/v1/repos/$Owner/$Repo/releases/$rid/assets?name=$escapedName"
|
|
|
|
Write-Host "Latest release id: $rid"
|
|
Write-Host "Uploading $name to $uploadUrl"
|
|
|
|
# Use Invoke-WebRequest multipart form upload
|
|
$form = @{ attachment = Get-Item -LiteralPath $ZipPath }
|
|
$resp = Invoke-WebRequest -Headers $headers -Method Post -Uri $uploadUrl -Form $form
|
|
|
|
if ($resp.StatusCode -ge 200 -and $resp.StatusCode -lt 300) {
|
|
Write-Host "Upload successful (HTTP $($resp.StatusCode))"
|
|
} else {
|
|
Write-Host "Upload failed (HTTP $($resp.StatusCode))" -ForegroundColor Red
|
|
if ($resp.Content) { Write-Host $resp.Content }
|
|
exit 1
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|