test(docker): add local Spigot test server
CI / build (push) Successful in 1m18s
Release / release (push) Successful in 1m56s

This commit is contained in:
dmg
2026-08-11 17:47:26 -04:00
parent 5d1577175f
commit 2e6fdb4e5b
7 changed files with 183 additions and 0 deletions
+8
View File
@@ -2,6 +2,14 @@
## 2026-08-11
### US-010 local Docker test server completed
- Added a repository-local Docker Compose harness using `itzg/minecraft-server:java25` with Spigot 26.2, persistent ignored state, offline local testing, and loopback-only port binding.
- Added one executable script that runs the strict Gradle build, recreates the isolated container with the latest JAR, waits for health, verifies Tree Feller through RCON, and confirms `WindMagi` as an operator.
- Documented start, log, stop, persistent-state reset, timeout, and RCON-password controls.
- Live verification completed in 23 seconds: the container was healthy, RCON reported `TreeFeller`, `ops.json` contained `WindMagi` at level 4, and port 25565 was bound only to `127.0.0.1`.
- The test server remains running at `localhost:25565` for gameplay testing.
### US-009 build and release completed
- Added maintainer documentation for requirements, builds, commands, configuration, supported species, persistence, safety, compatibility, and releases.
+1
View File
@@ -9,3 +9,4 @@
7. [US-007: Administer Tree Feller](us-007-administer-tree-feller.md)
8. [US-008: Configure and persist Tree Feller](us-008-configure-and-persist-tree-feller.md)
9. [US-009: Build and release Tree Feller](us-009-build-and-release-tree-feller.md)
10. [US-010: Run a local Docker test server](us-010-run-local-docker-test-server.md)
@@ -0,0 +1,33 @@
---
type: User Story
title: "US-010: Run a local Docker test server"
description: Provide a repeatable Docker Compose harness that builds and loads Tree Feller on an isolated Spigot 26.2 server.
status: done
---
# US-010: Run a local Docker test server
As a **plugin developer**, I want one command to run the current Tree Feller build on a local containerized server so that I can perform repeatable integration and gameplay testing.
## Acceptance criteria
- [x] One repository script builds and verifies the plugin before starting an isolated Spigot 26.2 server through Docker Compose.
- [x] The current Tree Feller JAR is mounted into the server automatically whenever the container is recreated.
- [x] `WindMagi` is configured and verified as a server operator.
- [x] The Minecraft port binds only to `127.0.0.1:25565` by default.
- [x] Startup waits for server health and verifies Tree Feller through RCON.
- [x] Generated worlds, logs, configuration, and downloaded server artifacts are stored under `.docker/minecraft/` and excluded from Git.
- [x] Stopping Compose preserves generated test state unless the operator explicitly deletes it.
- [x] Existing unrelated containers are not modified.
- [x] Maintainer documentation explains start, logs, stop, reset, timeout, and RCON-password controls.
## Scope
This harness is for local development only. It does not define production deployment, publish an image, expose Minecraft or RCON publicly, or persist its runtime state in Git.
## Related
- [US-003: Fell unlocked trees](us-003-fell-unlocked-trees.md)
- [US-005: Undo the last felled tree](us-005-undo-the-last-felled-tree.md)
- [US-009: Build and release Tree Feller](us-009-build-and-release-tree-feller.md)
- [User-story catalog](index.md)