docs(readme): document new code structure and CI publish
Some checks failed
Build and Publish Docker Image / deploy (push) Failing after 40s

Replace the outdated top-level file tree with a package-focused code structure
section that reflects the current `lib/*` layout and responsibilities.

Add a Gitea workflow section describing tagged Docker publish behavior, image
tags, test step, and runner requirements so release automation is clear and
repeatable.docs(readme): document new code structure and CI publish

Replace the outdated top-level file tree with a package-focused code structure
section that reflects the current `lib/*` layout and responsibilities.

Add a Gitea workflow section describing tagged Docker publish behavior, image
tags, test step, and runner requirements so release automation is clear and
repeatable.
This commit is contained in:
2026-04-15 19:55:01 +03:00
parent 7af0778047
commit fef710005f
2 changed files with 67 additions and 15 deletions

View File

@@ -11,21 +11,6 @@ Production-oriented Go web application for ingesting CPU benchmark results, stor
- A startup-loaded in-memory search index prevents full DB deserialization for every query.
- Graceful shutdown closes the HTTP server and BadgerDB cleanly to avoid lock issues.
## Project Layout
```text
.
├── main.go
├── handlers.go
├── db.go
├── models.go
├── templates/index.html
├── http/
├── example_jsons/
├── Dockerfile
└── docker-compose.yml
```
## Data Model
Each stored submission contains:
@@ -45,6 +30,16 @@ Each stored submission contains:
The parser also accepts optional CPU metadata found in your local sample JSON files such as `isHybrid`, `has3DVCache`, `supportedFeatures`, and `cores`.
## Code Structure
- `main.go` bootstraps configuration, storage, the HTTP server, and graceful shutdown.
- `lib/config` contains runtime configuration loading from environment variables.
- `lib/model` contains the benchmark and submission domain models plus validation helpers.
- `lib/store` contains BadgerDB persistence and the in-memory search index.
- `lib/web` contains routing, handlers, request parsing, pagination, and template helpers.
- `templates/index.html` contains the server-rendered frontend.
- `http/*.http` contains example requests for manual API testing.
## Requirements
- Go `1.23+`
@@ -192,6 +187,15 @@ docker build -t cpu-benchmark-server .
docker run --rm -p 8080:8080 -v cpu-benchmark-data:/data cpu-benchmark-server
```
## Gitea Workflow
The repository includes `.gitea/workflows/docker-publish.yml` for tagged Docker publishes.
- Trigger: any pushed tag matching `v*`
- Test step: `go test ./...`
- Published images: `tea.chunkbyte.com/kato/cpu-benchmarker-server:<tag>` and `tea.chunkbyte.com/kato/cpu-benchmarker-server:latest`
- Runner requirement: the selected Gitea runner label must provide a working Docker CLI and daemon access for `docker build` and `docker push`
## Notes
- The UI uses Go templates plus Tailwind CSS via CDN.