Track latest mod zip artifact

This commit is contained in:
Kroonk
2026-05-23 10:37:01 +02:00
parent d3d66c863b
commit a5b7165bf7
6 changed files with 40 additions and 3 deletions

View File

@@ -22,7 +22,8 @@ Diese Datei ist das Projektgedaechtnis fuer Brogether. Sie fasst zusammen, was b
- Brotato bringt `GodotWorkshopUtility.exe` mit. - Brotato bringt `GodotWorkshopUtility.exe` mit.
- Lokale Tools liegen absichtlich untracked unter `.tools/`. - Lokale Tools liegen absichtlich untracked unter `.tools/`.
- Recovered Brotato-Scripts liegen absichtlich untracked unter `recovered/`. - Recovered Brotato-Scripts liegen absichtlich untracked unter `recovered/`.
- Gebaute ZIPs liegen absichtlich untracked unter `dist/`. - Lokale Build-ZIPs liegen absichtlich untracked unter `dist/`.
- Der aktuelle teilbare Mod-ZIP wird zusaetzlich unter `releases/` committed.
## Relevante Projektstruktur ## Relevante Projektstruktur
@@ -41,11 +42,16 @@ docs/
setup.md setup.md
brotato-multiplayer-modding-research.md brotato-multiplayer-modding-research.md
workshop-upload.md workshop-upload.md
releases/
Brogether-Brogether-0.1.0.zip
``` ```
## Packaging Und Lokale Installation ## Packaging Und Lokale Installation
- `scripts/package.ps1` baut `dist\Brogether-Brogether-0.1.0.zip`. - `scripts/package.ps1` baut `dist\Brogether-Brogether-0.1.0.zip`.
- Danach kopiert `scripts/package.ps1` denselben ZIP nach `releases\Brogether-Brogether-0.1.0.zip`.
- `dist/` bleibt ignoriert; `releases/` wird committed, damit Tester den neuesten ZIP direkt aus dem Repo laden koennen.
- Das Skript nutzt .NET `ZipArchive`, weil PowerShell `Compress-Archive` Backslash-Pfade erzeugt hatte, die Godot/Brotato nicht sauber akzeptierte. - Das Skript nutzt .NET `ZipArchive`, weil PowerShell `Compress-Archive` Backslash-Pfade erzeugt hatte, die Godot/Brotato nicht sauber akzeptierte.
- ZIP-Struktur im Archiv: - ZIP-Struktur im Archiv:

View File

@@ -37,13 +37,16 @@ scripts/
package.ps1 Builds the mod ZIP package.ps1 Builds the mod ZIP
install-local.ps1 Installs the ZIP for local Brotato tests install-local.ps1 Installs the ZIP for local Brotato tests
releases/
Brogether-Brogether-0.1.0.zip Latest committed mod ZIP for testers
docs/ docs/
setup.md Setup and test notes setup.md Setup and test notes
brotato-multiplayer-modding-research.md brotato-multiplayer-modding-research.md
workshop-upload.md Step-by-step Steam Workshop upload guide workshop-upload.md Step-by-step Steam Workshop upload guide
``` ```
`.tools/`, `recovered/`, and `dist/` are intentionally not committed. They contain local tools, recovered Brotato files, and built ZIPs. `.tools/`, `recovered/`, and `dist/` are intentionally not committed. They contain local tools, recovered Brotato files, and local build output. The current shareable mod ZIP is committed under `releases/`.
## Local Test ## Local Test

View File

@@ -21,6 +21,8 @@ After that, the ZIP is here:
dist\Brogether-Brogether-0.1.0.zip dist\Brogether-Brogether-0.1.0.zip
``` ```
The same ZIP is also copied to `releases\Brogether-Brogether-0.1.0.zip`. The `releases/` copy is committed to Git so testers can download the latest mod ZIP directly from the repository.
- Optional but recommended: a Workshop preview image as PNG or JPG. `512x512` and below `1 MB` is a good target. - Optional but recommended: a Workshop preview image as PNG or JPG. `512x512` and below `1 MB` is a good target.
- For the first upload, you do not need a Workshop ID. Steam creates it. - For the first upload, you do not need a Workshop ID. Steam creates it.
- For later updates, you need the Workshop ID from your Workshop item URL. - For later updates, you need the Workshop ID from your Workshop item URL.
@@ -83,7 +85,7 @@ The ID would be:
``` ```
2. Start `GodotWorkshopUtility.exe`. 2. Start `GodotWorkshopUtility.exe`.
3. Select `dist\Brogether-Brogether-0.1.0.zip` again. 3. Select `dist\Brogether-Brogether-0.1.0.zip` again. The committed copy in `releases/` is the same ZIP, but `dist/` is the local upload path used by the scripts.
4. Optionally select the same preview image. 4. Optionally select the same preview image.
5. This time, enter the existing Workshop ID. 5. This time, enter the existing Workshop ID.
6. Start the upload. 6. Start the upload.

Binary file not shown.

18
releases/README.md Normal file
View File

@@ -0,0 +1,18 @@
# Release Artifacts
This folder intentionally stores the latest built Brogether mod ZIP in Git.
Run this from the project root whenever the mod changes:
```powershell
.\scripts\package.ps1
```
The script creates both:
```text
dist\Brogether-Brogether-0.1.0.zip
releases\Brogether-Brogether-0.1.0.zip
```
`dist/` stays local and ignored. `releases/` is committed so testers can download the current mod ZIP directly from the repository.

View File

@@ -9,16 +9,22 @@ Add-Type -AssemblyName System.IO.Compression.FileSystem
$root = Split-Path -Parent $PSScriptRoot $root = Split-Path -Parent $PSScriptRoot
$source = Join-Path $root "src" $source = Join-Path $root "src"
$dist = Join-Path $root "dist" $dist = Join-Path $root "dist"
$releases = Join-Path $root "releases"
$zipPath = Join-Path $dist "Brogether-Brogether-$Version.zip" $zipPath = Join-Path $dist "Brogether-Brogether-$Version.zip"
$releaseZipPath = Join-Path $releases "Brogether-Brogether-$Version.zip"
if (-not (Test-Path $source)) { if (-not (Test-Path $source)) {
throw "Missing source folder: $source" throw "Missing source folder: $source"
} }
New-Item -ItemType Directory -Force -Path $dist | Out-Null New-Item -ItemType Directory -Force -Path $dist | Out-Null
New-Item -ItemType Directory -Force -Path $releases | Out-Null
if (Test-Path $zipPath) { if (Test-Path $zipPath) {
Remove-Item -LiteralPath $zipPath -Force Remove-Item -LiteralPath $zipPath -Force
} }
if (Test-Path $releaseZipPath) {
Remove-Item -LiteralPath $releaseZipPath -Force
}
$archive = [System.IO.Compression.ZipFile]::Open($zipPath, [System.IO.Compression.ZipArchiveMode]::Create) $archive = [System.IO.Compression.ZipFile]::Open($zipPath, [System.IO.Compression.ZipArchiveMode]::Create)
try { try {
@@ -37,4 +43,6 @@ finally {
$archive.Dispose() $archive.Dispose()
} }
Copy-Item -LiteralPath $zipPath -Destination $releaseZipPath -Force
Write-Host "Created $zipPath" Write-Host "Created $zipPath"
Write-Host "Updated release artifact $releaseZipPath"