From ac521c38a8aed727062db22e0aebe1738f453077 Mon Sep 17 00:00:00 2001 From: David Folch Agulles Date: Thu, 27 Nov 2025 23:59:27 +0100 Subject: [PATCH] Improve Docker image tagging strategy and remove Swagger version - Replace 'stable' tag with semver-based tags (1.2.3, 1.2, 1) - Use 'edge' tag for main branch instead of 'latest' - Reserve 'latest' tag only for tagged releases - Remove version from Swagger docs (tracked via git tags instead) - Document available image tags in README --- .github/workflows/docker-publish.yml | 8 +++++--- README.md | 6 ++++++ cmd/api/main.go | 1 - docs/docs.go | 2 +- docs/swagger.json | 3 +-- docs/swagger.yaml | 1 - 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 0a339c9..1a4b126 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -80,10 +80,12 @@ jobs: with: images: ghcr.io/${{ github.repository }} tags: | - type=ref,event=tag + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} type=sha,prefix=sha- - type=raw,value=latest,enable={{is_default_branch}} - type=raw,value=stable,enable=${{ startsWith(github.ref, 'refs/tags/v') }} + type=raw,value=edge,enable={{is_default_branch}} + type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') }} - name: Build and push uses: docker/build-push-action@v5 diff --git a/README.md b/README.md index d79f356..6915f58 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,12 @@ docker-compose up -d The API will be available at `http://localhost:8080` +**Available image tags:** +- `latest`: Latest stable release (recommended for production) +- `1`, `1.0`, `1.0.0`: Specific version tags +- `edge`: Latest development build from main branch (unstable) +- `sha-abc123`: Specific commit (for debugging) + **Configuration options:** - `JWT_SECRET`: **Required**. Use a long random string - `JWT_EXPIRY`: Token expiration (e.g., `24h`, `48h`) diff --git a/cmd/api/main.go b/cmd/api/main.go index 7e45cd8..6ed76d1 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -18,7 +18,6 @@ import ( ) // @title Apocapoc API -// @version 1.0 // @description Self-hosted habit tracking service // @termsOfService http://swagger.io/terms/ diff --git a/docs/docs.go b/docs/docs.go index 566c727..e98a381 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1208,7 +1208,7 @@ const docTemplate = `{ // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ - Version: "1.0", + Version: "", Host: "", BasePath: "/api/v1", Schemes: []string{}, diff --git a/docs/swagger.json b/docs/swagger.json index b512030..d15cc92 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -11,8 +11,7 @@ "license": { "name": "MIT", "url": "https://opensource.org/licenses/MIT" - }, - "version": "1.0" + } }, "basePath": "/api/v1", "paths": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 8bec1d9..3f3aa2f 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -213,7 +213,6 @@ info: url: https://opensource.org/licenses/MIT termsOfService: http://swagger.io/terms/ title: Apocapoc API - version: "1.0" paths: /auth/login: post: