refactor: 重构数据库连接使用PostgreSQL替代SQLite feat(auth): 增加JWT验证的audience和issuer检查 feat(crypto): 添加AES-256-GCM字段加密支持 feat(api): 集成utoipa实现OpenAPI文档 fix(admin): 修复配置项表单验证逻辑 style: 统一代码格式与类型定义 docs: 更新技术栈文档说明PostgreSQL
105 lines
2.9 KiB
Makefile
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
|