Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 10 additions & 33 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -563,25 +563,21 @@ jobs:
}
}
Push-Location $releaseDir
& 7z a -t7z -m0=LZMA2 -mx=7 -mmt=on -v1900m "GoAgent-$version-win-x64-nvidia-portable.7z" ".\win-unpacked\*" | Out-Host
& 7z a -t7z -m0=LZMA2 -mx=7 -mmt=on "GoAgent-$version-win-x64-nvidia-portable.7z" ".\win-unpacked\*" | Out-Host
Pop-Location
Rename-Item -LiteralPath $installer.FullName -NewName "GoAgent-$version-win-x64-nvidia.exe" -Force
$nvidiaPortableParts = Get-ChildItem -Path $releaseDir -Filter "GoAgent-$version-win-x64-nvidia-portable.7z.*" -File | Sort-Object Name
$nvidiaPortable = Get-Item (Join-Path $releaseDir "GoAgent-$version-win-x64-nvidia-portable.7z")
$nvidiaInstaller = Get-Item (Join-Path $releaseDir "GoAgent-$version-win-x64-nvidia.exe")
if (-not $nvidiaPortableParts) { throw "Missing NVIDIA portable split 7z parts after recompression." }
$nvidiaPortableTotal = ($nvidiaPortableParts | Measure-Object -Property Length -Sum).Sum
if (-not $nvidiaPortable) { throw "Missing NVIDIA portable 7z archive after recompression." }
$nvidiaPortableTotal = $nvidiaPortable.Length
$nvidiaPortableMax = 2560MB
if ($nvidiaPortableTotal -gt $nvidiaPortableMax) {
throw "NVIDIA portable split 7z total bytes exceeds size budget: $nvidiaPortableTotal > $nvidiaPortableMax"
throw "NVIDIA portable 7z bytes exceed size budget: $nvidiaPortableTotal > $nvidiaPortableMax"
}
Write-Host "NVIDIA portable split 7z parts: $($nvidiaPortableParts.Count)"
Write-Host "NVIDIA portable split 7z total bytes: $nvidiaPortableTotal"
Write-Host "NVIDIA portable 7z bytes: $nvidiaPortableTotal"
Write-Host "NVIDIA installer EXE bytes: $($nvidiaInstaller.Length)"
foreach ($part in $nvidiaPortableParts) {
Write-Host "NVIDIA portable part bytes: $($part.Name) $($part.Length)"
if ($part.Length -ge 2147483648) {
throw "NVIDIA portable split archive part exceeds GitHub's 2 GiB asset limit: $($part.Name) $($part.Length)"
}
if ($nvidiaPortable.Length -ge 2147483648) {
throw "NVIDIA portable archive exceeds GitHub's 2 GiB asset limit: $($nvidiaPortable.Name) $($nvidiaPortable.Length)"
}

- name: Smoke NVIDIA packaged Windows app
Expand All @@ -593,7 +589,7 @@ jobs:
name: GoAgent-Windows-NVIDIA
path: |
release/**/*nvidia*.exe
release/**/*nvidia*.7z*
release/**/*nvidia*.7z
if-no-files-found: error

github-release:
Expand All @@ -615,24 +611,6 @@ jobs:
path: artifacts
merge-multiple: true

- name: Generate checksums
shell: bash
run: |
shopt -s globstar nullglob
files=(
artifacts/**/GoAgent-*-mac-arm64.dmg
artifacts/**/GoAgent-*-mac-x64.dmg
artifacts/**/GoAgent-*-win-x64-portable.zip
artifacts/**/GoAgent-*-win-x64.exe
artifacts/**/GoAgent-*-win-x64-nvidia-portable.7z*
artifacts/**/GoAgent-*-win-x64-nvidia.exe
)
if [[ ${#files[@]} -eq 0 ]]; then
echo "No release assets found for checksum generation." >&2
exit 1
fi
sha256sum "${files[@]}" | sed 's# .*/# #' > artifacts/SHA256SUMS.txt

- name: Create release
uses: softprops/action-gh-release@v2
with:
Expand All @@ -643,7 +621,6 @@ jobs:
artifacts/**/GoAgent-*-mac-x64.dmg
artifacts/**/GoAgent-*-win-x64-portable.zip
artifacts/**/GoAgent-*-win-x64.exe
artifacts/**/GoAgent-*-win-x64-nvidia-portable.7z*
artifacts/**/GoAgent-*-win-x64-nvidia-portable.7z
artifacts/**/GoAgent-*-win-x64-nvidia.exe
artifacts/SHA256SUMS.txt
body_path: docs/RELEASE_NOTES_${{ github.ref_name }}.md
6 changes: 2 additions & 4 deletions docs/NVIDIA_RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,10 @@ KataGo assets must live in `resources/data/katago` in the packaged app. They mus

```text
GoAgent-<version>-win-x64-nvidia.exe
GoAgent-<version>-win-x64-nvidia-portable.7z.001
GoAgent-<version>-win-x64-nvidia-portable.7z.002
GoAgent-<version>-win-x64-nvidia-portable.7z.003
GoAgent-<version>-win-x64-nvidia-portable.7z
```

The portable package is split only when needed for GitHub's per-asset upload limits. The workflow uses solid 7z compression and enforces a size budget so the total NVIDIA portable archive remains in the same order of magnitude as the source NVIDIA runtime bundle.
The portable package is published as a single 7z file without `.001` split-volume suffixes. The workflow uses solid 7z compression and enforces a size budget so the NVIDIA portable archive remains in the same order of magnitude as the source NVIDIA runtime bundle while staying below GitHub's per-asset upload limit.

The standard Windows package remains:

Expand Down
4 changes: 1 addition & 3 deletions docs/PACKAGING.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ The job scans the extracted archive, finds `katago.exe`, copies the whole runtim

```text
GoAgent-<version>-win-x64-nvidia.exe
GoAgent-<version>-win-x64-nvidia-portable.7z.001
GoAgent-<version>-win-x64-nvidia-portable.7z.002
GoAgent-<version>-win-x64-nvidia-portable.7z.003
GoAgent-<version>-win-x64-nvidia-portable.7z
```

This keeps the NVIDIA package honest: it is not the standard Windows package with a new filename.
Expand Down
Loading
Loading