--- type: User Story title: "US-006: Build, test, and release the plugin" description: Give maintainers repeatable builds, automated verification, and versioned Gitea releases. status: done --- # US-006: Build, test, and release the plugin As a **plugin maintainer**, I want automated builds and releases modeled on Spigot Tyrant so that tested, correctly versioned artifacts can be distributed consistently. ## Acceptance criteria - [x] The Gradle Kotlin DSL 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 and Mockito tests run as part of the Gradle check lifecycle. - [x] Pushes and pull requests build and test the plugin in Gitea Actions. - [x] Pull requests validate conventional commit messages. - [x] CI stores a `spigot-stealth` development JAR as a workflow artifact. - [x] Main-branch conventional commits drive semantic versioning. - [x] A successful release builds a versioned JAR and attaches it to the corresponding Gitea release. - [x] Build files, Gradle wrapper, workflows, and release behavior follow `../spigot-tyrant/` where applicable while using Spigot Stealth names and identifiers. - [x] OKF validation using `okf-base.yaml` runs locally through the repository validation script and in CI. ## Validation Verified with `./gradlew clean check jar`, a release-version `1.2.3` JAR with matching embedded plugin metadata, and `./scripts/validate-okf.sh`. ## Related - [Configure and persist stealth progression](us-005-configure-and-persist-progression.md)