its kind of working now
This commit is contained in:
114
Makefile
Normal file
114
Makefile
Normal file
@@ -0,0 +1,114 @@
|
||||
.PHONY: all build release run test test-integration bench clean docker-build docker-shell docker-run docker-test fmt help
|
||||
|
||||
# Default target
|
||||
all: build
|
||||
|
||||
# === Build Targets ===
|
||||
build:
|
||||
zig build
|
||||
|
||||
release:
|
||||
zig build -Doptimize=ReleaseFast
|
||||
|
||||
clean:
|
||||
rm -rf zig-out .zig-cache data
|
||||
|
||||
fmt:
|
||||
zig fmt src/ tests/
|
||||
|
||||
# === Run Targets ===
|
||||
run: build
|
||||
zig build run
|
||||
|
||||
run-port: build
|
||||
zig build run -- --port $(PORT)
|
||||
|
||||
# === Test Targets ===
|
||||
test:
|
||||
zig build test
|
||||
|
||||
test-integration:
|
||||
zig build test-integration
|
||||
|
||||
test-all: test test-integration
|
||||
|
||||
bench:
|
||||
zig build bench
|
||||
|
||||
# === Docker Targets ===
|
||||
docker-build:
|
||||
docker-compose build dev
|
||||
|
||||
docker-shell:
|
||||
docker-compose run --rm dev
|
||||
|
||||
docker-run:
|
||||
docker-compose up server
|
||||
|
||||
docker-test:
|
||||
docker-compose run --rm dev zig build test
|
||||
|
||||
docker-bench:
|
||||
docker-compose run --rm dev zig build bench
|
||||
|
||||
docker-clean:
|
||||
docker-compose down -v
|
||||
docker rmi dynamodb-zig-dev 2>/dev/null || true
|
||||
|
||||
# === AWS CLI Test ===
|
||||
aws-test:
|
||||
@echo "Creating table..."
|
||||
aws dynamodb create-table \
|
||||
--endpoint-url http://localhost:8000 \
|
||||
--table-name TestTable \
|
||||
--key-schema AttributeName=pk,KeyType=HASH \
|
||||
--attribute-definitions AttributeName=pk,AttributeType=S \
|
||||
--billing-mode PAY_PER_REQUEST || true
|
||||
@echo "\nListing tables..."
|
||||
aws dynamodb list-tables --endpoint-url http://localhost:8000
|
||||
@echo "\nPutting item..."
|
||||
aws dynamodb put-item \
|
||||
--endpoint-url http://localhost:8000 \
|
||||
--table-name TestTable \
|
||||
--item '{"pk":{"S":"test1"},"data":{"S":"hello world"}}'
|
||||
@echo "\nGetting item..."
|
||||
aws dynamodb get-item \
|
||||
--endpoint-url http://localhost:8000 \
|
||||
--table-name TestTable \
|
||||
--key '{"pk":{"S":"test1"}}'
|
||||
@echo "\nScanning table..."
|
||||
aws dynamodb scan \
|
||||
--endpoint-url http://localhost:8000 \
|
||||
--table-name TestTable
|
||||
|
||||
# === Local DynamoDB (for comparison) ===
|
||||
dynamodb-local:
|
||||
docker-compose up dynamodb-local
|
||||
|
||||
# === Help ===
|
||||
help:
|
||||
@echo "ZynamoDB Development Commands"
|
||||
@echo ""
|
||||
@echo "Build & Run:"
|
||||
@echo " make build - Build debug version"
|
||||
@echo " make release - Build optimized release"
|
||||
@echo " make run - Build and run server"
|
||||
@echo " make run-port PORT=8080 - Run on custom port"
|
||||
@echo ""
|
||||
@echo "Testing:"
|
||||
@echo " make test - Run unit tests"
|
||||
@echo " make test-integration - Run integration tests"
|
||||
@echo " make test-all - Run all tests"
|
||||
@echo " make bench - Run benchmarks"
|
||||
@echo ""
|
||||
@echo "Docker:"
|
||||
@echo " make docker-build - Build Docker image"
|
||||
@echo " make docker-shell - Open shell in container"
|
||||
@echo " make docker-run - Run server in Docker"
|
||||
@echo " make docker-test - Run tests in Docker"
|
||||
@echo ""
|
||||
@echo "Utilities:"
|
||||
@echo " make clean - Remove build artifacts"
|
||||
@echo " make fmt - Format source code"
|
||||
@echo " make aws-test - Test with AWS CLI"
|
||||
@echo " make help - Show this help"
|
||||
Reference in New Issue
Block a user