- Drone now triggers on push to main branch instead of Git tags
- Each merge produces two Docker tags: main-{commit-sha} and main-latest
- No manual Git tags needed — merging PR develop → main is the release
- Updated docs/DEVELOPMENT.md with new Git-flow workflow
- Updated CHANGELOG.md with automatic releases feature
2.9 KiB
2.9 KiB
Changelog
All notable project changes should be documented here.
This project follows Semantic Versioning. For more details, see docs/DEVELOPMENT.md.
Unreleased
- Automatic releases on merge — Drone now builds and pushes Docker images automatically when a Pull Request is merged into
main. No manual Git tags are needed. Each merge produces two tags:main-{commit-sha}for traceability andmain-latestfor the most recent stable build. - Git-flow workflow — development happens in the
developbranch. When code is ready for release, create a Pull Request fromdevelop→main. Merging the PR triggers the automatic release.
v0.3.0
- CI/CD migrated to Drone — replaced Gitea Actions with Drone CI/CD (
.drone.yml). The Docker pluginauto_tagfeature automatically creates Semantic Versioning tags (0.3.0,0.3) on Git tag pushes. ConfigureREGISTRY_USERNAMEandREGISTRY_PASSWORDsecrets in the Gitea repository settings.
v0.2.0
- CI/CD with Drone — automated Docker image build and push on Git tags using Drone CI/CD. Each release produces three tags: full version (
0.2.0), minor version (0.2), andlatest. ConfigureREGISTRY_USERNAMEandREGISTRY_PASSWORDsecrets in Gitea repository settings. - Docker build optimization — added
.dockerignoreto exclude unnecessary files from the build context, reducing build time and image size. - Release documentation — added detailed release process guide in
docs/DEVELOPMENT.mdwith Semantic Versioning workflow.
v0.1.0
- Multi-stage Docker build — the Dockerfile now compiles both the Angular frontend and Spring Boot backend inside Docker using three stages (Node.js → Gradle → JRE). Build the entire application with a single
docker buildcommand — no local Java or Node.js required. - Security hardening — replaced full host root mount (
/:/host/root:ro) with specific directory mounts (/proc,/sys,/etc/hostname,/etc/os-release,/var,/home,/opt,/tmp,/srv,/usr) to minimize the attack surface. - Host metrics consistency —
LinuxMemoryServiceandCpuDetailsServicenow read host metrics from/host/procinstead of container metrics from OSHI. - Concurrency improvements — replaced
synchronizedmethods withAtomicReferenceinSystemMetricsService,SystemProcessesService, andCpuDetailsServiceto eliminate lock contention. - Global error handling — added
@RestControllerAdvicefor structured JSON error responses. - Unit tests — added 32 tests covering
/procfile parsers, CPU usage calculations, and process uptime logic. - Docker security — added non-root user (
appuser), read-only filesystem,no-new-privileges, and healthcheck to the container. - Debug logging — added
log.debug()calls in silent catch blocks across all services. - Documentation structure established.