build(plugin): establish build and release pipeline
CI / build (push) Successful in 3m2s
Release / release (push) Successful in 3m47s

This commit is contained in:
dmg
2026-08-14 23:52:20 -04:00
parent 4aa0b438fb
commit f28e47782e
15 changed files with 688 additions and 11 deletions
@@ -2,7 +2,7 @@
type: User Story
title: "US-006: Build, test, and release the plugin"
description: Give maintainers repeatable builds, automated verification, and versioned Gitea releases.
status: backlog
status: done
---
# US-006: Build, test, and release the plugin
@@ -11,16 +11,20 @@ As a **plugin maintainer**, I want automated builds and releases modeled on Spig
## Acceptance criteria
- [ ] The Gradle Kotlin DSL project compiles against Spigot API `26.2-R0.1-SNAPSHOT` using a Java 17 toolchain.
- [ ] Compiler lint warnings fail the build.
- [ ] Automated JUnit 5 and Mockito tests run as part of the Gradle check lifecycle.
- [ ] Pushes and pull requests build and test the plugin in Gitea Actions.
- [ ] Pull requests validate conventional commit messages.
- [ ] CI stores a `spigot-stealth` development JAR as a workflow artifact.
- [ ] Main-branch conventional commits drive semantic versioning.
- [ ] A successful release builds a versioned JAR and attaches it to the corresponding Gitea release.
- [ ] Build files, Gradle wrapper, workflows, and release behavior follow `../spigot-tyrant/` where applicable while using Spigot Stealth names and identifiers.
- [ ] OKF validation using `okf-base.yaml` runs locally through the repository validation script and in CI.
- [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