feat(deploy): publish Discord bot image
CI / validate (push) Successful in 4m39s
Release / release (push) Successful in 6m23s

This commit is contained in:
dmg
2026-08-01 15:47:27 -04:00
parent d91572b831
commit 478f3a3b87
8 changed files with 64 additions and 4 deletions
+1
View File
@@ -2,6 +2,7 @@
## 2026-08-01
* **Extend**: Added a releasable Discord bot image and a dependency-free web health endpoint for Kubernetes deployment.
* **Verify**: Confirmed the initial `v1.0.0` release, public Velocity JAR, and versioned and `latest` web and migration image manifests.
* **Create**: Added Gitea CI and semantic-release pipelines for downloadable Velocity JARs and versioned web and migration images.
* **Document**: Added container deployment order, artifact names, and required repository secrets.
+2 -1
View File
@@ -3,7 +3,7 @@ type: User Story
title: Deploy and operate the platform securely
description: Operators have repeatable builds, migrations, credential provisioning, configuration, and security checks.
tags: [operations, security, database, deployment]
timestamp: 2026-08-01T19:01:47Z
timestamp: 2026-08-01T19:46:09Z
story_id: US-015
status: verified
---
@@ -21,6 +21,7 @@ As a platform operator, I want reproducible deployment and security controls, so
- [x] The Velocity Gradle wrapper produces a tested shaded JAR.
- [x] Environment examples document database, Keycloak, Discord, trusted proxy, and ProxyCheck settings without secrets.
- [x] The web application sets CSP, framing, MIME, referrer, and permissions headers.
- [x] The web runtime provides a dependency-free health endpoint for orchestration probes.
- [x] npm dependency audit and Semgrep security review complete without findings at the last verified change.
- [x] Architecture, Keycloak, API error, security, bot, and Velocity operating documentation is available.
+4 -3
View File
@@ -3,9 +3,9 @@ type: User Story
title: Build and publish versioned releases
description: Gitea Actions validate every change and publish semantically versioned Velocity and container artifacts.
tags: [operations, ci, release, velocity, docker]
timestamp: 2026-08-01T19:18:42Z
timestamp: 2026-08-01T19:46:09Z
story_id: US-016
status: verified
status: implemented
---
# User Story
@@ -21,6 +21,7 @@ As a platform operator, I want automated validation and semantic releases, so th
- [x] A release build embeds the semantic version in the Velocity plugin and JAR filename.
- [x] A public Gitea release exposes the versioned Velocity JAR as a downloadable asset.
- [x] Releases publish versioned and `latest` web runtime images to the Gitea registry.
- [ ] Releases publish versioned and `latest` Discord bot images to the Gitea registry.
- [x] Releases publish versioned and `latest` migration images that run versioned Drizzle migrations.
- [x] Runtime containers use unprivileged users and exclude development source and secrets where practical.
- [x] Operators are told which repository secrets must be configured before the first push.
@@ -36,7 +37,7 @@ As a platform operator, I want automated validation and semantic releases, so th
# 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 versioned and `latest` web and migration images. Pull-request commitlint configuration is present; its conditional execution will be exercised by the first pull request.
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 versioned and `latest` web and migration images. Discord bot image publication is implemented for the next feature release. Pull-request commitlint configuration is present; its conditional execution will be exercised by the first pull request.
# Related Stories