Files
zclaw_openfang/Makefile
iven 44256a511c feat: 增强SaaS后端功能与安全性
refactor: 重构数据库连接使用PostgreSQL替代SQLite
feat(auth): 增加JWT验证的audience和issuer检查
feat(crypto): 添加AES-256-GCM字段加密支持
feat(api): 集成utoipa实现OpenAPI文档
fix(admin): 修复配置项表单验证逻辑
style: 统一代码格式与类型定义
docs: 更新技术栈文档说明PostgreSQL
2026-03-31 00:12:53 +08:00

105 lines
2.9 KiB
Makefile

# ZCLAW Makefile
# Cross-platform task runner
.PHONY: help start start-dev start-no-browser desktop desktop-build setup test clean \
saas-build saas-run saas-test saas-test-integration saas-clippy saas-migrate \
saas-docker-up saas-docker-down saas-docker-build
help: ## Show this help message
@echo "ZCLAW - AI Agent Desktop Client"
@echo ""
@echo "Usage: make [target]"
@echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-18s\033[0m %s\n", $$1, $$2}'
# === Startup Commands ===
start: ## Start all services (Windows: PowerShell)
@powershell -ExecutionPolicy Bypass -File ./start-all.ps1
start-dev: ## Start all services in dev mode
@powershell -ExecutionPolicy Bypass -File ./start-all.ps1 -Dev
start-no-browser: ## Start without ChromeDriver
@powershell -ExecutionPolicy Bypass -File ./start-all.ps1 -NoBrowser
start-desktop-only: ## Start desktop only (no external services)
@powershell -ExecutionPolicy Bypass -File ./start-all.ps1 -DesktopOnly
start-unix: ## Start all services (Unix: macOS/Linux)
@chmod +x ./start.sh && ./start.sh
start-unix-dev: ## Start all services in dev mode (Unix)
@chmod +x ./start.sh && ./start.sh --dev
# === Desktop App ===
desktop: ## Start Tauri desktop app in dev mode
@cd desktop && pnpm tauri dev
desktop-build: ## Build Tauri desktop app
@cd desktop && pnpm build && pnpm tauri build
# === Development ===
setup: ## Run first-time setup
@tsx scripts/setup.ts
test: ## Run all tests
@pnpm test
test-desktop: ## Run desktop tests
@cd desktop && pnpm test
typecheck: ## Run TypeScript type check
@cd desktop && pnpm typecheck
# === Services ===
chromedriver: ## Start ChromeDriver on port 4444
@chromedriver --port=4444
# === Cleanup ===
clean: ## Clean build artifacts
@rm -rf dist/
@rm -rf desktop/dist/
@rm -rf desktop/src-tauri/target/
@rm -rf node_modules/
@rm -rf desktop/node_modules/
@echo "Cleaned build artifacts"
clean-deep: clean ## Deep clean (including pnpm cache)
@rm -rf desktop/pnpm-lock.yaml
@rm -rf pnpm-lock.yaml
@echo "Deep clean complete. Run 'pnpm install' to reinstall."
# === SaaS Backend ===
saas-build: ## Build zclaw-saas crate
@cargo build -p zclaw-saas
saas-run: ## Start SaaS backend (cargo run)
@cargo run -p zclaw-saas
saas-test: ## Run SaaS unit tests
@cargo test -p zclaw-saas -- --test-threads=1
saas-test-integration: ## Run SaaS integration tests (requires PostgreSQL)
@cargo test -p zclaw-saas -- --ignored --test-threads=1
saas-clippy: ## Run clippy on zclaw-saas
@cargo clippy -p zclaw-saas -- -D warnings
saas-migrate: ## Run database migrations
@cargo run -p zclaw-saas -- --migrate
saas-docker-up: ## Start SaaS services (PostgreSQL + backend)
@docker compose up -d
saas-docker-down: ## Stop SaaS services
@docker compose down
saas-docker-build: ## Build SaaS Docker images
@docker compose build