chore(deploy): containerize services + Forgejo release pipeline (#33) #98
No reviewers
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo!98
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/deploy-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #33. Mirrors the aac-board pipeline for IsoMmo.
Stacked on #97 (protocol version) — includes it; merge #97 first.
Server images
src/IsoMmo.Auth/Dockerfile+src/IsoMmo.GameServer/Dockerfile: SDK 10 -> aspnet 10, built-in non-rootappuser,/app/datawritable volume,curlhealthcheck on/health..dockerignoreexcludes client/tools/tests.Game:SavePath:world.savmoves to the mounted volume while the map stays read-only in the image (was coupled under ContentRoot).Pipeline
ci.yamlgainsworkflow_call.release.yaml(on tag):test->publish(matrixisommo-auth/isommo-gameserver-> Forgejo registry) ->release(changelog viamarco/forgejo-ci) ->deploy(Semaphore webhook), plus aclientjob that publishes self-contained win-x64/osx-arm64/linux-x64 zips (with aconfig.jsonpre-pointed atmmo.homelab.devncode.it) + the asset editor, attached to the release.Verified locally (docker compose)
Both images build, run healthy; Auth issues a JWT (issuer/audience
isommo); the GameServer accepts a WS across containers with the right protocol version and rejects the wrong one (426).Deploy tail (Ansible
roles/isommoin home-infra-ng + Semaphore integration) is separate infra work.Definition of Done
mmo.homelab.devncode.it.https://mmo.homelab.devncode.it/healthresponds;wss://…/wsaccepts a valid client.