42d12d905a
mirror-to-gitee / mirror (push) Successful in 5s
版本号与功能一一对应:小程序线功能停在 v1.0.2,镜像 tag 也停在 v1.0.2, 平台后续发 v1.0.5 时它不动。 - deploy/docker-compose.yml:app-server / app-web 两行回退 v1.0.2 - Makefile:IMAGE_MAP 增加第 5 列「固定版本」,app 两行填 v1.0.2, 本地构建与 CI 行为一致 - 根 README:新增「小程序线是独立版本线」说明 - app/README.md:标注本目录对应 v1.0.2,不跟随平台 tag - 文档:deploy/README 版本表、build-image 的 tag 表与说明、 offline / prerequisites / configuration 示例 tag 全部回退 v1.0.2 CI 侧由 Jenkins 流水线的 PIN 表(app|v1.0.2)保证:tag 构建自动跳过 app, 需要重建时单独触发 SERVICES=app VERSION=v1.0.2。
73 lines
2.7 KiB
Makefile
73 lines
2.7 KiB
Makefile
# iotLCM 开源版 —— 常用构建入口
|
||
#
|
||
# make build 编译全部 Go 服务
|
||
# make test 跑全部 Go 模块的单元测试
|
||
# make images 本地构建全部镜像(默认 tag 用 git describe)
|
||
# make docs 本地构建文档站
|
||
# make clean 清理构建产物
|
||
#
|
||
# 镜像仓库与版本可覆盖:
|
||
# make images REGISTRY=registry.example.com/iotlcm/iotlcm VERSION=v1.0.4
|
||
|
||
REGISTRY ?= iotlcm
|
||
VERSION ?= $(shell git describe --tags --abbrev=0 2>/dev/null || git rev-parse --short HEAD)
|
||
BASE_REGISTRY ?= docker.io/library
|
||
|
||
GO_MODULES := admin-svr/server app/server bot onelink-mock openapi sms upstream-chan upstream-proxy worker-svr
|
||
|
||
# 目录|镜像名|构建上下文|Dockerfile|固定版本(留空=跟随 VERSION)
|
||
# 小程序线 app 固定 v1.0.2:版本号与功能一一对应,平台发新 tag 时不跟着动。
|
||
IMAGE_MAP := \
|
||
admin-svr|iotlcm-admin-svr|admin-svr/server|build/Dockerfile| \
|
||
admin-ui|iotlcm-admin-ui|admin-ui|vue/build/Dockerfile| \
|
||
openapi|iotlcm-openapi|openapi|build/Dockerfile| \
|
||
worker-svr|iotlcm-worker-svr|worker-svr|build/Dockerfile| \
|
||
upstream-chan|iotlcm-upstream-chan|upstream-chan|build/Dockerfile| \
|
||
upstream-proxy|iotlcm-upstream-proxy|upstream-proxy|build/Dockerfile| \
|
||
app|iotlcm-app-server|app/server|Dockerfile|v1.0.2 \
|
||
app|iotlcm-app-web|app/app|Dockerfile|v1.0.2 \
|
||
sms|iotlcm-sms|sms|build/Dockerfile| \
|
||
bot|iotlcm-bot|bot|Dockerfile| \
|
||
docs|iotlcm-docs|docs|Dockerfile| \
|
||
onelink-mock|iotlcm-onelink-mock|onelink-mock|Dockerfile|
|
||
|
||
.PHONY: help build test images docs clean
|
||
|
||
help:
|
||
@grep -E '^# make' Makefile | sed 's/^# //'
|
||
|
||
build:
|
||
@set -e; for m in $(GO_MODULES); do \
|
||
echo "==> go build ./... ($$m)"; \
|
||
( cd "$$m" && go build ./... ); \
|
||
done
|
||
@echo "✅ 全部 Go 服务编译通过"
|
||
|
||
test:
|
||
@set -e; for m in $(GO_MODULES); do \
|
||
echo "==> go test ./... ($$m)"; \
|
||
( cd "$$m" && go test ./... ); \
|
||
done
|
||
|
||
images:
|
||
@set -e; echo "镜像前缀: $(REGISTRY) 版本: $(VERSION)"; \
|
||
echo "$(IMAGE_MAP)" | tr ' ' '\n' | while IFS='|' read -r dir img ctx df pin; do \
|
||
[ -z "$$dir" ] && continue; \
|
||
v="$${pin:-$(VERSION)}"; \
|
||
echo ""; echo "==> $$img:$$v (context=$$ctx dockerfile=$$df$${pin:+ [固定版本]})"; \
|
||
docker build -f "$$ctx/$$df" \
|
||
--build-arg BASE_REGISTRY="$(BASE_REGISTRY)" \
|
||
--build-arg BuildVersion="$$v" \
|
||
--build-arg CommitID="$$(git rev-parse --short=7 HEAD)" \
|
||
--build-arg BuildTime="$$(date -u +%FT%TZ)" \
|
||
-t "$(REGISTRY):$$img-$$v" "$$ctx"; \
|
||
done
|
||
|
||
docs:
|
||
cd docs && npm ci && npm run build
|
||
@echo "✅ 文档站产物:docs/.vitepress/dist"
|
||
|
||
clean:
|
||
@rm -rf docs/.vitepress/dist docs/.vitepress/cache
|
||
@echo "✅ 已清理"
|