93 lines
2.9 KiB
Makefile
93 lines
2.9 KiB
Makefile
# SGLang Router Makefile
|
|
# Provides convenient shortcuts for common development tasks
|
|
|
|
.PHONY: help bench bench-quick bench-baseline bench-compare test build clean
|
|
|
|
help: ## Show this help message
|
|
@echo "SGLang Router Development Commands"
|
|
@echo "=================================="
|
|
@echo ""
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
@echo ""
|
|
|
|
build: ## Build the project in release mode
|
|
@echo "Building SGLang Router..."
|
|
@cargo build --release
|
|
|
|
test: ## Run all tests
|
|
@echo "Running tests..."
|
|
@cargo test
|
|
|
|
bench: ## Run full benchmark suite
|
|
@echo "Running full benchmarks..."
|
|
@python3 scripts/run_benchmarks.py
|
|
|
|
bench-quick: ## Run quick benchmarks only
|
|
@echo "Running quick benchmarks..."
|
|
@python3 scripts/run_benchmarks.py --quick
|
|
|
|
bench-baseline: ## Save current performance as baseline
|
|
@echo "Saving performance baseline..."
|
|
@python3 scripts/run_benchmarks.py --save-baseline main
|
|
|
|
bench-compare: ## Compare with saved baseline
|
|
@echo "Comparing with baseline..."
|
|
@python3 scripts/run_benchmarks.py --compare-baseline main
|
|
|
|
bench-ci: ## Run benchmarks suitable for CI (quick mode)
|
|
@echo "Running CI benchmarks..."
|
|
@python3 scripts/run_benchmarks.py --quick
|
|
|
|
clean: ## Clean build artifacts
|
|
@echo "Cleaning build artifacts..."
|
|
@cargo clean
|
|
|
|
docs: ## Generate and open documentation
|
|
@echo "Generating documentation..."
|
|
@cargo doc --open
|
|
|
|
check: ## Run cargo check and clippy
|
|
@echo "Running cargo check..."
|
|
@cargo check
|
|
@echo "Running clippy..."
|
|
@cargo clippy
|
|
|
|
fmt: ## Format code with rustfmt
|
|
@echo "Formatting code..."
|
|
@cargo fmt
|
|
|
|
# Development workflow shortcuts
|
|
dev-setup: build test ## Set up development environment
|
|
@echo "Development environment ready!"
|
|
|
|
pre-commit: fmt check test bench-quick ## Run pre-commit checks
|
|
@echo "Pre-commit checks passed!"
|
|
|
|
# Benchmark analysis shortcuts
|
|
bench-report: ## Open benchmark HTML report
|
|
@if [ -f "target/criterion/request_processing/report/index.html" ]; then \
|
|
echo "Opening benchmark report..."; \
|
|
if command -v xdg-open >/dev/null 2>&1; then \
|
|
xdg-open target/criterion/request_processing/report/index.html; \
|
|
elif command -v open >/dev/null 2>&1; then \
|
|
open target/criterion/request_processing/report/index.html; \
|
|
else \
|
|
echo "Please open target/criterion/request_processing/report/index.html in your browser"; \
|
|
fi \
|
|
else \
|
|
echo "No benchmark report found. Run 'make bench' first."; \
|
|
fi
|
|
|
|
bench-clean: ## Clean benchmark results
|
|
@echo "Cleaning benchmark results..."
|
|
@rm -rf target/criterion
|
|
|
|
# Performance monitoring
|
|
perf-monitor: ## Run continuous performance monitoring
|
|
@echo "Starting performance monitoring..."
|
|
@if command -v watch >/dev/null 2>&1; then \
|
|
watch -n 300 'make bench-quick'; \
|
|
else \
|
|
echo "Warning: 'watch' command not found. Install it or run 'make bench-quick' manually."; \
|
|
fi
|