# RustFS S3 Toolkit - 开发工具 .PHONY: help install clean build check test publish-test publish help: ## 显示帮助信息 @echo "RustFS S3 Toolkit 开发命令:" @echo "" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' install: ## 安装开发环境 @echo "🔧 安装开发环境..." pip install -e ".[dev]" @echo "✅ 开发环境安装完成" clean: ## 清理构建文件 @echo "🧹 清理构建文件..." rm -rf dist/ rm -rf build/ rm -rf *.egg-info/ rm -rf src/*.egg-info/ find . -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true find . -name '*.pyc' -delete 2>/dev/null || true @echo "✅ 清理完成" format: ## 格式化代码 @echo "🎨 格式化代码..." black src/ tests/ examples/ isort src/ tests/ examples/ @echo "✅ 代码格式化完成" lint: ## 代码检查 @echo "🔍 代码检查..." flake8 src/ tests/ examples/ mypy src/ @echo "✅ 代码检查完成" test: ## 运行单元测试 @echo "🧪 运行单元测试..." PYTHONPATH=src pytest tests/ -v --cov=rustfs_s3_toolkit --cov-report=term-missing @echo "✅ 单元测试完成" test-all: ## 测试所有 Python 版本 (3.9-3.13) @echo "🧪 测试所有 Python 版本..." tox -e py39,py310,py311,py312,py313 @echo "✅ 多版本测试完成" test-quick: ## 快速测试 (当前 Python 版本) @echo "⚡ 快速测试..." PYTHONPATH=src pytest tests/ -v @echo "✅ 快速测试完成" test-integration: ## 集成测试 (需要真实 S3 服务) @echo "🔗 集成测试 (需要 S3 服务)..." @echo "⚠️ 确保已配置 S3 服务连接信息" RUN_INTEGRATION_TESTS=1 PYTHONPATH=src pytest tests/test_toolkit.py::test_all_functions -v -s @echo "✅ 集成测试完成" coverage: ## 生成覆盖率报告 @echo "📊 生成覆盖率报告..." tox -e coverage @echo "✅ 覆盖率报告生成完成 (查看 htmlcov/index.html)" build: clean ## 构建包 @echo "📦 构建包..." python -m build @echo "✅ 构建完成" check: build ## 检查包格式 @echo "🔍 检查包格式..." python publish.py --check-only @echo "✅ 包格式检查完成" publish-test: ## 发布到 TestPyPI @echo "🧪 发布到 TestPyPI..." python publish.py --test @echo "✅ TestPyPI 发布完成" publish: ## 交互式发布到 PyPI @echo "🚀 交互式发布..." python publish.py publish-auto: ## 自动发布到 PyPI (无交互) @echo "🚀 自动发布到 PyPI..." python publish.py --auto # 发布前完整检查 pre-publish: format lint test-all build check ## 发布前完整检查 @echo "✅ 发布前检查全部通过!" # 生产发布流程 (推荐) publish-prod: pre-publish ## 生产发布流程 (包含所有检查) @echo "🚀 开始生产发布流程..." @echo "📋 检查清单:" @echo " ✅ 代码格式化" @echo " ✅ 代码质量检查" @echo " ✅ 多版本测试 (Python 3.9-3.13)" @echo " ✅ 包构建和验证" @echo "" python publish.py dev-setup: ## 完整开发环境设置 @echo "🚀 设置完整开发环境..." python -m venv .venv || true @echo "请运行: source .venv/bin/activate" @echo "然后运行: make install" # CI/CD 流程 ci: lint test coverage ## CI 流程 (代码检查 + 测试 + 覆盖率) @echo "✅ CI 流程完成" all: format lint test build check ## 运行所有检查和构建 # 默认目标 .DEFAULT_GOAL := help