feat(release): macOS .app client bundle + compiled server zips #101

Merged
marco merged 1 commit from chore/release-artifacts into main 2026-07-19 21:28:01 +02:00
Owner

Cosa

  • Client macOS = IsoMmo.app: il job client wrappa il publish osx-arm64 in un bundle .app (Info.plist + tutto sotto Contents/MacOS), così Finder lo apre come applicazione invece di una cartella di ~200 file. Unsigned → primo avvio con click-destro > Apri (o xattr -cr).
  • Zip server compilati: nuovo job server che pubblica Auth + GameServer self-contained per linux-x64 + win-x64 e li allega alla release (self-host senza Docker; il GameServer porta content/maps/world.map).
  • zipdir preserva i permessi Unix → gli eseguibili restano +x dopo unzip, altrimenti l'.app scaricato non parte. Helper condivisi in scripts/ci/lib.sh.
  • Doc: sezione Releases in docs/deploy.md.

Verifica locale (build reale = CI linux)

  • .app riconosciuto da macOS come kMDItemKind = "Application", plutil -lint OK.
  • Round-trip zip→unzip: eseguibile conserva -rwxr-xr-x.
  • Publish server linux-x64: apphost ELF valido + world.map incluso.
  • dotnet build -c Release: 0 warning.
## Cosa - **Client macOS = `IsoMmo.app`**: il job client wrappa il publish osx-arm64 in un bundle `.app` (Info.plist + tutto sotto `Contents/MacOS`), così Finder lo apre come applicazione invece di una cartella di ~200 file. Unsigned → primo avvio con click-destro > Apri (o `xattr -cr`). - **Zip server compilati**: nuovo job `server` che pubblica Auth + GameServer self-contained per `linux-x64` + `win-x64` e li allega alla release (self-host senza Docker; il GameServer porta `content/maps/world.map`). - **`zipdir` preserva i permessi Unix** → gli eseguibili restano `+x` dopo unzip, altrimenti l'`.app` scaricato non parte. Helper condivisi in `scripts/ci/lib.sh`. - Doc: sezione *Releases* in `docs/deploy.md`. ## Verifica locale (build reale = CI linux) - `.app` riconosciuto da macOS come `kMDItemKind = "Application"`, `plutil -lint` OK. - Round-trip zip→unzip: eseguibile conserva `-rwxr-xr-x`. - Publish server `linux-x64`: apphost ELF valido + `world.map` incluso. - `dotnet build -c Release`: 0 warning.
feat(release): macOS .app client bundle + compiled server zips
All checks were successful
ci / Lint & Test (pull_request) Successful in 1m58s
release / Lint & Test (push) Successful in 4m2s
release / test (push) Successful in 0s
release / Publish isommo-gameserver (push) Successful in 2m16s
release / Publish isommo-auth (push) Successful in 2m16s
release / Deploy via Semaphore (push) Successful in 3s
release / Create release (push) Successful in 7s
release / Server artifacts (push) Successful in 2m45s
release / Server artifacts-1 (push) Successful in 2m47s
release / Client artifacts (push) Successful in 3m8s
b2d771f191
marco merged commit 6750b8f215 into main 2026-07-19 21:28:01 +02:00
marco deleted branch chore/release-artifacts 2026-07-19 21:28:01 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo!101
No description provided.