134 lines
4.3 KiB
Makefile
134 lines
4.3 KiB
Makefile
# ============================================================
|
|
# Aily - 企业 AI 应用平台 Makefile
|
|
# ============================================================
|
|
|
|
.PHONY: help dev-api dev-web dev build test lint migrate-up migrate-down migrate-create sqlc docker-up docker-down
|
|
|
|
# Default
|
|
help: ## 显示帮助信息
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
|
|
# ==================== Development ====================
|
|
|
|
dev-api: ## 启动后端开发服务器(热重载需安装 air)
|
|
cd server && go run ./cmd/server/
|
|
|
|
dev-web: ## 启动前端开发服务器
|
|
cd apps/web && npm run dev
|
|
|
|
dev: ## 同时启动前后端(需要 goreman 或手动开两个终端)
|
|
@echo "请在两个终端分别运行: make dev-api 和 make dev-web"
|
|
|
|
# ==================== Build ====================
|
|
|
|
build-api: ## 编译后端
|
|
cd server && CGO_ENABLED=0 go build -o ../dist/server ./cmd/server/
|
|
|
|
build-web: ## 编译前端
|
|
cd apps/web && npm run build
|
|
|
|
build: build-api build-web ## 编译前后端
|
|
|
|
# ==================== Test ====================
|
|
|
|
test: ## 运行后端测试
|
|
cd server && go test ./... -v -count=1
|
|
|
|
test-cover: ## 运行测试并生成覆盖率报告
|
|
cd server && go test ./... -coverprofile=coverage.out && go tool cover -html=coverage.out
|
|
|
|
# ==================== Lint ====================
|
|
|
|
lint-api: ## 后端代码检查
|
|
cd server && go vet ./...
|
|
|
|
lint-web: ## 前端代码检查
|
|
cd apps/web && npm run lint
|
|
|
|
lint: lint-api lint-web ## 全部代码检查
|
|
|
|
# ==================== Database ====================
|
|
|
|
MIGRATE_URL ?= "postgres://aily:aily@localhost:5432/aily_portal?sslmode=disable"
|
|
|
|
migrate-up: ## 执行数据库迁移(全部)
|
|
migrate -database $(MIGRATE_URL) -path server/migrations up
|
|
|
|
migrate-down: ## 回滚最近一次迁移
|
|
migrate -database $(MIGRATE_URL) -path server/migrations down 1
|
|
|
|
migrate-create: ## 创建新迁移文件 (用法: make migrate-create NAME=create_xxx)
|
|
migrate create -ext sql -dir server/migrations -seq $(NAME)
|
|
|
|
migrate-status: ## 查看迁移状态
|
|
migrate -database $(MIGRATE_URL) -path server/migrations version
|
|
|
|
# ==================== sqlc ====================
|
|
|
|
sqlc: ## 生成 sqlc 代码
|
|
cd server && sqlc generate
|
|
|
|
# ==================== Docker ====================
|
|
|
|
docker-up: ## 启动基础设施 (PostgreSQL + Redis + MinIO)
|
|
docker compose -f docker/docker-compose.yml up -d
|
|
|
|
docker-down: ## 停止基础设施
|
|
docker compose -f docker/docker-compose.yml down
|
|
|
|
docker-dify-up: ## 启动 Dify 服务
|
|
docker compose -f docker/docker-compose.dify.yml up -d
|
|
|
|
docker-dify-down: ## 停止 Dify 服务
|
|
docker compose -f docker/docker-compose.dify.yml down
|
|
|
|
docker-all-up: docker-up docker-dify-up ## 启动全部服务
|
|
|
|
docker-all-down: docker-dify-down docker-down ## 停止全部服务
|
|
|
|
docker-logs: ## 查看 Docker 日志
|
|
docker compose -f docker/docker-compose.yml logs -f
|
|
|
|
# ==================== Production ====================
|
|
|
|
docker-prod-up: ## 启动生产环境
|
|
docker compose -f docker/docker-compose.prod.yml up -d --build
|
|
|
|
docker-prod-down: ## 停止生产环境
|
|
docker compose -f docker/docker-compose.prod.yml down
|
|
|
|
# ==================== PPT Worker ====================
|
|
|
|
dev-ppt: ## 启动 PPT Worker 开发服务器
|
|
cd ppt-worker && python app.py
|
|
|
|
ppt-worker-install: ## 安装 PPT Worker 依赖
|
|
cd ppt-worker && pip install -r requirements.txt
|
|
|
|
# ==================== Seed ====================
|
|
|
|
seed: ## 初始化种子数据(管理员账号、示例应用)
|
|
PGPASSWORD=aily psql -h localhost -U aily -d aily_portal -f server/migrations/seed.sql
|
|
|
|
seed-ppt: ## 初始化 PPT 生成应用种子数据
|
|
PGPASSWORD=aily psql -h localhost -U aily -d aily_portal -f server/migrations/seed_ppt.sql
|
|
|
|
# ==================== Setup ====================
|
|
|
|
setup: docker-up ## 初始化开发环境(启动基础服务+迁移+种子数据)
|
|
@echo "⏳ 等待数据库启动..."
|
|
@sleep 3
|
|
$(MAKE) migrate-up
|
|
$(MAKE) seed
|
|
@echo "✅ 开发环境初始化完成!"
|
|
@echo " 管理员账号: admin@aily.com / admin123"
|
|
@echo " 创作者账号: zhangsan@aily.com / admin123"
|
|
@echo " 普通用户: lisi@aily.com / admin123"
|
|
@echo ""
|
|
@echo "运行 make dev-api 和 make dev-web 启动开发服务器"
|
|
|
|
# ==================== Clean ====================
|
|
|
|
clean: ## 清理构建产物
|
|
rm -rf dist/ server/server apps/web/.next apps/web/out
|