115 lines
2.6 KiB
Makefile
115 lines
2.6 KiB
Makefile
.PHONY: build clean test docker run scheduler agent help
|
|
|
|
# 项目名称
|
|
PROJECT_NAME := proxy-platform
|
|
VERSION := 1.0.0
|
|
BUILD_DIR := bin
|
|
|
|
# Go 参数
|
|
GO := go
|
|
GOFLAGS := -v
|
|
LDFLAGS := -ldflags "-s -w -X main.Version=$(VERSION)"
|
|
|
|
# Docker 参数
|
|
DOCKER := docker
|
|
DOCKER_COMPOSE := docker-compose
|
|
|
|
# 默认目标
|
|
.DEFAULT_GOAL := help
|
|
|
|
## build: 构建所有组件
|
|
build: scheduler agent
|
|
|
|
## scheduler: 构建调度中心
|
|
scheduler:
|
|
@echo "构建调度中心..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
$(GO) build $(GOFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/scheduler ./cmd/scheduler
|
|
|
|
## agent: 构建节点 Agent
|
|
agent:
|
|
@echo "构建节点 Agent..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
$(GO) build $(GOFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/agent ./cmd/agent
|
|
|
|
## clean: 清理构建产物
|
|
clean:
|
|
@echo "清理构建产物..."
|
|
@rm -rf $(BUILD_DIR)
|
|
@rm -f coverage.out
|
|
|
|
## test: 运行测试
|
|
test:
|
|
@echo "运行测试..."
|
|
$(GO) test -v -race -coverprofile=coverage.out ./...
|
|
|
|
## test-coverage: 查看测试覆盖率
|
|
test-coverage: test
|
|
$(GO) tool cover -html=coverage.out
|
|
|
|
## docker: 构建 Docker 镜像
|
|
docker:
|
|
@echo "构建 Docker 镜像..."
|
|
$(DOCKER) build -t $(PROJECT_NAME)-scheduler:$(VERSION) -f deployments/Dockerfile.scheduler .
|
|
$(DOCKER) build -t $(PROJECT_NAME)-agent:$(VERSION) -f deployments/Dockerfile.agent .
|
|
|
|
## docker-compose-up: 使用 Docker Compose 启动
|
|
docker-compose-up:
|
|
@echo "启动服务..."
|
|
$(DOCKER_COMPOSE) -f deployments/docker-compose.yml up -d
|
|
|
|
## docker-compose-down: 停止 Docker Compose 服务
|
|
docker-compose-down:
|
|
@echo "停止服务..."
|
|
$(DOCKER_COMPOSE) -f deployments/docker-compose.yml down
|
|
|
|
## docker-compose-logs: 查看 Docker Compose 日志
|
|
docker-compose-logs:
|
|
$(DOCKER_COMPOSE) -f deployments/docker-compose.yml logs -f
|
|
|
|
## run-scheduler: 本地运行调度中心
|
|
run-scheduler:
|
|
@echo "运行调度中心..."
|
|
$(GO) run ./cmd/scheduler
|
|
|
|
## run-agent: 本地运行节点 Agent
|
|
run-agent:
|
|
@echo "运行节点 Agent..."
|
|
$(GO) run ./cmd/agent
|
|
|
|
## deps: 安装依赖
|
|
deps:
|
|
@echo "安装依赖..."
|
|
$(GO) mod download
|
|
$(GO) mod tidy
|
|
|
|
## lint: 运行代码检查
|
|
lint:
|
|
@echo "运行代码检查..."
|
|
@golangci-lint run ./...
|
|
|
|
## fmt: 格式化代码
|
|
fmt:
|
|
@echo "格式化代码..."
|
|
$(GO) fmt ./...
|
|
|
|
## migrate-up: 运行数据库迁移
|
|
migrate-up:
|
|
@echo "运行数据库迁移..."
|
|
$(GO) run ./cmd/scheduler migrate
|
|
|
|
## help: 显示帮助信息
|
|
help:
|
|
@echo "代理管理平台 Makefile"
|
|
@echo ""
|
|
@echo "使用方法:"
|
|
@echo " make [target]"
|
|
@echo ""
|
|
@echo "目标:"
|
|
@sed -n 's/^## / /p' $(MAKEFILE_LIST) | column -t -s ':'
|
|
|
|
# 显示变量
|
|
show-vars:
|
|
@echo "PROJECT_NAME: $(PROJECT_NAME)"
|
|
@echo "VERSION: $(VERSION)"
|
|
@echo "BUILD_DIR: $(BUILD_DIR)"
|