115 lines
3.4 KiB
Makefile
115 lines
3.4 KiB
Makefile
# 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
|