fix: resolve build version from release tag

This commit is contained in:
JRBaggins
2026-07-01 14:25:46 +08:00
parent 3812e627a8
commit de64b02612
10 changed files with 49 additions and 13 deletions
+7 -3
View File
@@ -41,7 +41,7 @@ RUN pnpm run build
FROM ${GOLANG_IMAGE} AS backend-builder
# Build arguments for version info (set by CI)
ARG VERSION=docker
ARG VERSION=
ARG COMMIT=docker
ARG DATE
ARG GOPROXY
@@ -66,9 +66,13 @@ COPY backend/ ./
COPY --from=frontend-builder /app/backend/internal/web/dist ./internal/web/dist
# Build the binary (BuildType=release for CI builds, embed frontend)
RUN CGO_ENABLED=0 GOOS=linux go build \
# Version precedence: build arg VERSION > exact git tag > cmd/server/VERSION
RUN VERSION_VALUE="${VERSION}" && \
if [ -z "${VERSION_VALUE}" ]; then VERSION_VALUE="$(./scripts/resolve-version.sh)"; fi && \
DATE_VALUE="${DATE:-$(date -u +%Y-%m-%dT%H:%M:%SZ)}" && \
CGO_ENABLED=0 GOOS=linux go build \
-tags embed \
-ldflags="-s -w -X main.Commit=${COMMIT} -X main.Date=${DATE:-$(date -u +%Y-%m-%dT%H:%M:%SZ)} -X main.BuildType=release" \
-ldflags="-s -w -X main.Version=${VERSION_VALUE} -X main.Commit=${COMMIT} -X main.Date=${DATE_VALUE} -X main.BuildType=release" \
-o /app/sub2api \
./cmd/server
+6 -3
View File
@@ -1,5 +1,8 @@
.PHONY: wire build build-embed test-unit test-integration test-e2e test-cover-integration
VERSION ?= $(shell ./scripts/resolve-version.sh)
LDFLAGS ?= -s -w -X main.Version=$(VERSION)
wire:
@echo "生成 Wire 代码..."
@cd cmd/server && go generate
@@ -7,12 +10,12 @@ wire:
build:
@echo "构建后端(不嵌入前端)..."
@go build -o bin/server ./cmd/server
@go build -ldflags="$(LDFLAGS)" -o bin/server ./cmd/server
@echo "构建完成: bin/server"
build-embed:
@echo "构建后端(嵌入前端)..."
@go build -tags embed -o bin/server ./cmd/server
@go build -tags embed -ldflags="$(LDFLAGS)" -o bin/server ./cmd/server
@echo "构建完成: bin/server (with embedded frontend)"
test-unit:
@@ -38,4 +41,4 @@ clean-coverage:
clean: clean-coverage
@rm -rf bin/
@echo "构建产物已清理"
@echo "构建产物已清理"