@@ -56,24 +56,36 @@ jobs:
5656 $release = Invoke-RestMethod -Headers $headers -Uri "${{ github.event.release.url }}"
5757 }
5858
59- # Find MSI installer URL
60- $installerUrl = $release.assets |
61- Where-Object { $_.name -like "*windows_amd64.msi" } |
62- Select-Object -ExpandProperty browser_download_url -First 1
59+ $urls = @(
60+ ($assets | Where-Object { $_.name -like "*windows_amd64.msi" } | Select-Object -ExpandProperty browser_download_url -First 1),
61+ ($assets | Where-Object { $_.name -like "*windows_amd64.exe" } | Select-Object -ExpandProperty browser_download_url -First 1),
62+ ($assets | Where-Object { $_.name -like "*windows_arm64.msi" } | Select-Object -ExpandProperty browser_download_url -First 1),
63+ ($assets | Where-Object { $_.name -like "*windows_arm64.exe" } | Select-Object -ExpandProperty browser_download_url -First 1)
64+ ) | Where-Object { $_ }
6365
64- if (-not $installerUrl) {
65- Write-Error "No MSI installer found for version ${{ env.VERSION }}"
66- exit 1
66+ if (-not $urls -or $urls.Count -eq 0) {
67+ throw "No Windows installers found in v${{ env.VERSION }}."
6768 }
6869
69- # Write single-line output safely
70- "installer_url=$installerUrl" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
70+ # Pick a primary (x64 MSI) for consumers that expect a single URL
71+ $primary = $urls | Where-Object { $_ -like "*.msi" -and $_ -match "amd64" } | Select-Object -First 1
72+ if (-not $primary) { $primary = $urls[0] }
73+
74+ # Output: single-line
75+ "installer_url=$primary" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
76+
77+ # Output: multiline list of all installer URLs
78+ $delimUrls = "EOF_$([Guid]::NewGuid().ToString('N'))"
79+ Add-Content $env:GITHUB_OUTPUT "installer_urls<<$delimUrls"
80+ $urls | ForEach-Object { Add-Content $env:GITHUB_OUTPUT $_ }
81+ Add-Content $env:GITHUB_OUTPUT $delimUrls
7182
72- # Write multiline release notes using a unique delimiter
73- $delim = "EOF_$([Guid]::NewGuid().ToString('N'))"
74- Add-Content -Path $env:GITHUB_OUTPUT -Value "release_notes<<$delim"
75- Add-Content -Path $env:GITHUB_OUTPUT -Value ($release.body -replace "`r","")
76- Add-Content -Path $env:GITHUB_OUTPUT -Value $delim
83+ # Output: release notes (multiline; normalize to LF)
84+ $notes = ($release.body ?? "") -replace "`r",""
85+ $delimNotes = "EOF_$([Guid]::NewGuid().ToString('N'))"
86+ Add-Content $env:GITHUB_OUTPUT "release_notes<<$delimNotes"
87+ Add-Content $env:GITHUB_OUTPUT $notes
88+ Add-Content $env:GITHUB_OUTPUT $delimNotes
7789
7890 - name : Update Winget Manifest
7991 run : |
0 commit comments