mirror of
https://github.com/beshu-tech/deltaglider.git
synced 2026-01-11 14:20:33 +01:00
76 lines
2.1 KiB
Makefile
76 lines
2.1 KiB
Makefile
.PHONY: help install test test-unit test-integration test-e2e lint format typecheck clean start-localstack stop-localstack
|
|
|
|
help: ## Show this help message
|
|
@echo 'Usage: make [target]'
|
|
@echo ''
|
|
@echo 'Targets:'
|
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-20s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
install: ## Install dependencies
|
|
uv pip install -e ".[dev]"
|
|
|
|
test: test-unit test-integration test-e2e ## Run all tests
|
|
|
|
test-unit: ## Run unit tests only
|
|
uv run pytest tests/unit -v
|
|
|
|
test-integration: ## Run integration tests only
|
|
uv run pytest tests/integration -v
|
|
|
|
test-e2e: start-localstack ## Run e2e tests (starts LocalStack)
|
|
@echo "Running E2E tests..."
|
|
@export AWS_ACCESS_KEY_ID=test && \
|
|
export AWS_SECRET_ACCESS_KEY=test && \
|
|
export AWS_DEFAULT_REGION=us-east-1 && \
|
|
export AWS_ENDPOINT_URL=http://localhost:4566 && \
|
|
uv run pytest tests/e2e -v --tb=short; \
|
|
exit_code=$$?; \
|
|
$(MAKE) stop-localstack; \
|
|
exit $$exit_code
|
|
|
|
start-localstack: ## Start LocalStack for e2e testing
|
|
@echo "Starting LocalStack..."
|
|
@docker run -d \
|
|
--name deltaglider-localstack \
|
|
-p 4566:4566 \
|
|
-e SERVICES=s3 \
|
|
-e DEBUG=0 \
|
|
-e DATA_DIR=/tmp/localstack/data \
|
|
localstack/localstack:latest || true
|
|
@echo "Waiting for LocalStack to be ready..."
|
|
@max_attempts=30; \
|
|
attempt=0; \
|
|
while [ $$attempt -lt $$max_attempts ]; do \
|
|
if curl -s -f http://localhost:4566/_localstack/health > /dev/null 2>&1; then \
|
|
echo "LocalStack is ready!"; \
|
|
break; \
|
|
fi; \
|
|
echo "Waiting... (attempt $$((attempt + 1))/$$max_attempts)"; \
|
|
sleep 2; \
|
|
attempt=$$((attempt + 1)); \
|
|
done; \
|
|
if [ $$attempt -eq $$max_attempts ]; then \
|
|
echo "LocalStack failed to start"; \
|
|
docker logs deltaglider-localstack; \
|
|
docker rm -f deltaglider-localstack; \
|
|
exit 1; \
|
|
fi
|
|
|
|
stop-localstack: ## Stop LocalStack
|
|
@echo "Stopping LocalStack..."
|
|
@docker rm -f deltaglider-localstack || true
|
|
|
|
lint: ## Run linting
|
|
uv run ruff check src tests
|
|
|
|
format: ## Format code
|
|
uv run ruff format src tests
|
|
|
|
typecheck: ## Run type checking
|
|
uv run mypy src
|
|
|
|
clean: ## Clean up
|
|
rm -rf .pytest_cache
|
|
rm -rf __pycache__
|
|
find . -name "*.pyc" -delete
|
|
find . -name "__pycache__" -delete
|