diff --git a/APP_VERSION b/APP_VERSION index 6d260c3a..b299be97 100644 --- a/APP_VERSION +++ b/APP_VERSION @@ -1 +1 @@ -v3.2.0 +v3.3.0 diff --git a/Makefile b/Makefile index 8dd9c810..d51bd8ee 100644 --- a/Makefile +++ b/Makefile @@ -13,25 +13,27 @@ show-version: @echo "Current APP_VERSION: $(APP_VERSION)" ## Bump APP_VERSION and update all docs -## Usage: make bump-version V=v2.9.0 +## Usage: make bump-version V=v2.9.0(V=2.9.0 也可,会自动补 v 前缀;应用镜像 tag 始终带 v) bump-version: ifndef V $(error Usage: make bump-version V=v2.9.0) endif - @echo "$(V)" > $(APP_VERSION_FILE) - @echo "✅ Updated $(APP_VERSION_FILE) to $(V)" - @$(MAKE) _replace-versions NEW_V=$(V) + @case "$(V)" in v*) NV="$(V)" ;; *) NV="v$(V)" ;; esac; \ + echo "$$NV" > $(APP_VERSION_FILE); \ + echo "✅ Updated $(APP_VERSION_FILE) to $$NV"; \ + $(MAKE) _replace-versions NEW_V=$$NV ## Replace version strings in docs +## 注:sed 中 v 前缀可缺省(v\{0,1\}),用于修复历史上漏写 v 的镜像 tag _replace-versions: @for f in $(DOC_FILES); do \ if [ -f "$$f" ]; then \ - sed -i '' 's|swanlab-server:v[0-9][0-9.]*|swanlab-server:$(NEW_V)|g' "$$f"; \ - sed -i '' 's|swanlab-house:v[0-9][0-9.]*|swanlab-house:$(NEW_V)|g' "$$f"; \ - sed -i '' 's|swanlab-cloud:v[0-9][0-9.]*|swanlab-cloud:$(NEW_V)|g' "$$f"; \ - sed -i '' 's|swanlab-next:v[0-9][0-9.]*|swanlab-next:$(NEW_V)|g' "$$f"; \ - sed -i '' 's|Self-Hosted Docker v[0-9][0-9.]*|Self-Hosted Docker $(NEW_V)|g' "$$f"; \ - sed -i '' 's|||g' "$$f"; \ + sed -i '' 's|swanlab-server:v\{0,1\}[0-9][0-9.]*|swanlab-server:$(NEW_V)|g' "$$f"; \ + sed -i '' 's|swanlab-house:v\{0,1\}[0-9][0-9.]*|swanlab-house:$(NEW_V)|g' "$$f"; \ + sed -i '' 's|swanlab-cloud:v\{0,1\}[0-9][0-9.]*|swanlab-cloud:$(NEW_V)|g' "$$f"; \ + sed -i '' 's|swanlab-next:v\{0,1\}[0-9][0-9.]*|swanlab-next:$(NEW_V)|g' "$$f"; \ + sed -i '' 's|Self-Hosted Docker v\{0,1\}[0-9][0-9.]*|Self-Hosted Docker $(NEW_V)|g' "$$f"; \ + sed -i '' 's|||g' "$$f"; \ echo " ✅ Updated $$f"; \ fi; \ done @@ -42,19 +44,19 @@ verify-version: @FAILED=0; \ for f in $(DOC_FILES); do \ if [ -f "$$f" ]; then \ - MISMATCH=$$(grep -nE 'swanlab-(server|house|cloud|next):v[0-9]' "$$f" | grep -v "$(APP_VERSION)" || true); \ + MISMATCH=$$(grep -nE 'swanlab-(server|house|cloud|next):v?[0-9]' "$$f" | grep -v ":$(APP_VERSION)" || true); \ if [ -n "$$MISMATCH" ]; then \ echo "❌ Version mismatch in $$f:"; \ echo "$$MISMATCH"; \ FAILED=1; \ fi; \ - BANNER_MISMATCH=$$(grep -n 'Self-Hosted Docker v' "$$f" | grep -v "$(APP_VERSION)" || true); \ + BANNER_MISMATCH=$$(grep -nE 'Self-Hosted Docker v?[0-9]' "$$f" | grep -v " $(APP_VERSION)" || true); \ if [ -n "$$BANNER_MISMATCH" ]; then \ echo "❌ Banner version mismatch in $$f:"; \ echo "$$BANNER_MISMATCH"; \ FAILED=1; \ fi; \ - BADGE_MISMATCH=$$(grep -n '