.PHONY: build test test-unit test-integration vet lint generate migrate-up migrate-down build-codegen deps proto proto-lint proto-breaking .PHONY: build test test-unit test-integration vet lint generate check-generate migrate-up migrate-down build-codegen deps # ── deps ─────────────────────────────────────────────────────────────────────── deps: go mod tidy go mod download # ── build ────────────────────────────────────────────────────────────────────── build: go build ./... build-codegen: ## 激活码批次生成 CLI go build -o bin/codegen ./cmd/codegen build-agent: ## 节点 agent 二进制(部署到加速节点) go build -o bin/pangolin-agent ./cmd/agent # ── test ─────────────────────────────────────────────────────────────────────── test: go test ./... test-unit: ## 单测(不依赖外部服务) go test -count=1 -race ./internal/codes/... -run 'Test[^I][^n][^t]' test-agent: ## 节点 agent 单测 + 集成(bufconn mock 控制面,无需 docker) go test -count=1 -race ./internal/agentd/... ./internal/pb/... test-integration: ## 集成测试(需本机 docker,testcontainers) go test -count=1 ./internal/codes/... -run TestInt # ── vet / lint ───────────────────────────────────────────────────────────────── vet: go vet ./... lint: golangci-lint run ./... # ── generate ─────────────────────────────────────────────────────────────────── generate: go generate ./... check-generate: ## CI guard: regenerate and fail if generated files changed go generate ./... git diff --exit-code server/api/gen # ── proto ────────────────────────────────────────────────────────────────────── proto: ## 从 proto/ 生成 internal/pb/ 代码(buf generate) go run github.com/bufbuild/buf/cmd/buf@v1.70.0 generate proto-lint: ## 检查 proto 语法与命名规范(buf lint) go run github.com/bufbuild/buf/cmd/buf@v1.70.0 lint proto-breaking: ## 与 main 分支对比检测 breaking change(buf breaking) ## 注:proto 首次合入 main 前,main 无 .proto 文件,此命令预期报"had no .proto files"; ## proto 合入 main 后,后续所有变更须通过此检查,无报错视为通过。 go run github.com/bufbuild/buf/cmd/buf@v1.70.0 breaking --against '../.git#branch=main,subdir=server' # ── migrate ──────────────────────────────────────────────────────────────────── migrate-up: @echo "migrate-up: see cmd/migrate" migrate-down: @echo "migrate-down: see cmd/migrate"