2.7 KiB
type, title, description, tags, timestamp, story_id, status
| type | title | description | tags | timestamp | story_id | status | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| User Story | Build and publish versioned releases | Gitea Actions validate every change and publish semantically versioned Velocity and container artifacts. |
|
2026-08-01T20:05:49Z | US-016 | verified |
User Story
As a platform operator, I want automated validation and semantic releases, so that deployable web, migration, and Velocity artifacts are reproducible and downloadable.
Acceptance Criteria
- Pushes and pull requests run OKF validation, linting, type checks, tests, the web build, and the Velocity build.
- Pull requests validate conventional commit messages.
- CI uploads the development Velocity JAR as a workflow artifact.
- Main-branch conventional commits determine the next semantic version and create a
vMAJOR.MINOR.PATCHtag. - A release build embeds the semantic version in the Velocity plugin and JAR filename.
- A public Gitea release exposes the versioned Velocity JAR as a downloadable asset.
- Releases publish semantically versioned web runtime images to the Gitea registry.
- Releases publish semantically versioned Discord bot images to the Gitea registry.
- Releases publish semantically versioned migration images that run versioned Drizzle migrations.
- Releases do not publish mutable container tags such as
latest. - Runtime containers use unprivileged users and exclude development source and secrets where practical.
- Operators are told which repository secrets must be configured before the first push.
Implementation
- CI workflow
- Release workflow
- Semantic Release configuration
- Web and migration Docker targets
- Velocity Gradle build
- Release and deployment guide
Validation
Local OKF, lint, typecheck, test, Next.js build, and versioned Velocity JAR checks pass. Initial Gitea CI and release runs succeeded. Release v1.0.0 provides a publicly downloadable JAR whose Velocity metadata reports 1.0.0. Registry manifests were resolved for the published semantic-version tags. Release v1.1.0 also publishes resolvable versioned web, Discord bot, and migration manifests and a public Velocity JAR whose metadata reports 1.1.0. Release v1.1.1 published immutable semantic-version tags only; prior latest digests remained unchanged. Pull-request commitlint configuration is present; its conditional execution will be exercised by the first pull request.