--- type: User Story title: "US-009: Build and release Tree Feller" description: Give maintainers repeatable Spigot builds, automated verification, and versioned Gitea releases. status: done --- # US-009: Build and release Tree Feller As a **plugin maintainer**, I want automated builds and releases modeled on `spigot-getgud` so that tested, correctly versioned Tree Feller artifacts can be distributed consistently. ## Acceptance criteria - [x] The Gradle project compiles against Spigot API `26.2-R0.1-SNAPSHOT` using a Java 17 toolchain. - [x] Compiler lint warnings fail the build. - [x] Automated JUnit 5 tests run as part of the Gradle check lifecycle. - [x] Pushes and pull requests build and test Tree Feller in Gitea Actions. - [x] Pull requests validate conventional commit messages. - [x] CI stores a development Tree Feller JAR as a workflow artifact. - [x] Main-branch conventional commits drive semantic versioning. - [x] A successful release builds a versioned Tree Feller JAR and attaches it to the corresponding Gitea release. - [x] Build files, Gradle wrapper, workflows, release behavior, and Java dependency versions follow `../spigot-getgud/` where applicable while using Tree Feller names and identifiers. - [x] Plugin metadata declares the player and administrative command trees with separate permissions. - [x] The approved user-story bundle is committed before implementation begins. - [x] Subsequent implementation follows test-driven development where practical and keeps story statuses and acceptance criteria synchronized with verified behavior. - [x] No remote push is performed until the maintainer confirms that the Gitea repository and release token secret are ready. ## Related - [US-007: Administer Tree Feller](us-007-administer-tree-feller.md) - [US-008: Configure and persist Tree Feller](us-008-configure-and-persist-tree-feller.md) - [User-story catalog](index.md)