# Makefile — onesvm-browser-server 仓根(Contract §5-A5)。 # 目标覆盖:fmt / vet / test / build-amd64 / image / image-trafilatura / smoke / wc。 # 密钥不入本文件(部署 env 走 gitignore 的 deploy.env,见 scripts/deploy-mgr1.sh)。 .DEFAULT_GOAL := help # 生产 amd64(组织部署规范:Mac arm64 构建必须显式 --platform linux/amd64)。 PLATFORM ?= linux/amd64 # 冒烟镜像 tag(本机 arm64;不与生产 :dev 混用)。 SMOKE_IMAGE ?= onesvm/browser-server:smoke .PHONY: help fmt vet test build-amd64 image image-trafilatura smoke wc help: ## 显示本帮助 @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-18s\033[0m %s\n", $$1, $$2}' fmt: ## gofmt 格式检查(server/;输出为空即通过) cd server && gofmt -l . vet: ## go vet 静态检查 cd server && go vet ./... test: ## 单测全量 cd server && go test ./... build-amd64: ## amd64 交叉构建产出 bin/(部署轮 save|load 用本机镜像,此 target 供快速验证) mkdir -p bin cd server && GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "-s -w" -o ../bin/browser-server-linux-amd64 ./cmd/browser-server image: ## 构建生产镜像 onesvm/browser-server:dev(默认 amd64;本机冒烟可 PLATFORM=linux/arm64) docker build --platform $(PLATFORM) -t onesvm/browser-server:dev -f server/Dockerfile . image-trafilatura: ## 构建 trafilatura 引擎镜像 onesvm/trafilatura-http:dev(amd64) docker build --platform $(PLATFORM) -t onesvm/trafilatura-http:dev stacks/trafilatura smoke: ## 本机 compose 冒烟(起 stub 引擎 + 三角色,12 步断言;证据落 .dsh/artifacts) bash scripts/smoke-local.sh wc: ## 源文件行数检查(server *.go 按行数倒序,>600 即违规) find server -name '*.go' | xargs wc -l | sort -rn | head -20