You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.5 KiB
145 lines
4.5 KiB
# Hyperledger Fabric Asset Transfer API Makefile
|
|
|
|
.PHONY: help build run test clean swagger docker-build docker-run docker-compose-up docker-compose-down docker-compose-logs lint fmt vet tidy env-setup
|
|
|
|
# Default target
|
|
help: ## Show this help message
|
|
@echo 'Usage: make [target]'
|
|
@echo ''
|
|
@echo 'Targets:'
|
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
# Setup environment configuration
|
|
env-setup: ## Setup environment configuration files
|
|
@echo "Setting up environment configuration..."
|
|
@if [ ! -f config.env ]; then \
|
|
echo "Creating config.env from example..."; \
|
|
cp config.env.example config.env; \
|
|
echo "Please edit config.env with your specific configuration"; \
|
|
else \
|
|
echo "config.env already exists"; \
|
|
fi
|
|
|
|
# Build the application
|
|
build: ## Build the application binary
|
|
@echo "Building application..."
|
|
go build -o bin/spiderman cmd/server/main.go
|
|
|
|
# Run the application
|
|
run: ## Run the application
|
|
@echo "Running application..."
|
|
go run cmd/server/main.go
|
|
|
|
# Run the application in development mode
|
|
run-dev: ## Run the application in development mode
|
|
@echo "Running application in development mode..."
|
|
ENVIRONMENT=development go run cmd/server/main.go
|
|
|
|
# Run the application in production mode
|
|
run-prod: ## Run the application in production mode
|
|
@echo "Running application in production mode..."
|
|
ENVIRONMENT=production LOG_FORMAT=json go run cmd/server/main.go
|
|
|
|
# Run tests
|
|
test: ## Run tests
|
|
@echo "Running tests..."
|
|
go test -v ./...
|
|
|
|
# Run tests with coverage
|
|
test-coverage: ## Run tests with coverage
|
|
@echo "Running tests with coverage..."
|
|
go test -v -coverprofile=coverage.out ./...
|
|
go tool cover -html=coverage.out -o coverage.html
|
|
|
|
# Clean build artifacts
|
|
clean: ## Clean build artifacts
|
|
@echo "Cleaning..."
|
|
rm -rf bin/
|
|
rm -f coverage.out coverage.html
|
|
|
|
# Generate swagger documentation
|
|
swagger: ## Generate swagger documentation
|
|
@echo "Generating swagger documentation..."
|
|
swag init -g cmd/server/main.go -o docs
|
|
|
|
# Build docker image
|
|
docker-build: ## Build docker image
|
|
@echo "Building docker image..."
|
|
docker build -t spiderman -f docker/Dockerfile .
|
|
|
|
# Run docker container
|
|
docker-run: ## Run docker container
|
|
@echo "Running docker container..."
|
|
docker run -p 8080:8080 spiderman
|
|
|
|
# Run docker container in development mode
|
|
docker-run-dev: ## Run docker container in development mode
|
|
@echo "Running docker container in development mode..."
|
|
docker run -p 8080:8080 -e ENVIRONMENT=development spiderman
|
|
|
|
# Run with docker-compose
|
|
docker-compose-up: ## Run with docker-compose
|
|
@echo "Starting services with docker-compose..."
|
|
cd docker && docker-compose up -d
|
|
|
|
# Stop docker-compose services
|
|
docker-compose-down: ## Stop docker-compose services
|
|
@echo "Stopping docker-compose services..."
|
|
cd docker && docker-compose down
|
|
|
|
# View docker-compose logs
|
|
docker-compose-logs: ## View docker-compose logs
|
|
@echo "Viewing docker-compose logs..."
|
|
cd docker && docker-compose logs -f
|
|
|
|
# Run linting
|
|
lint: ## Run golangci-lint
|
|
@echo "Running linter..."
|
|
golangci-lint run
|
|
|
|
# Format code
|
|
fmt: ## Format Go code
|
|
@echo "Formatting code..."
|
|
go fmt ./...
|
|
|
|
# Run go vet
|
|
vet: ## Run go vet
|
|
@echo "Running go vet..."
|
|
go vet ./...
|
|
|
|
# Tidy dependencies
|
|
tidy: ## Tidy go modules
|
|
@echo "Tidying dependencies..."
|
|
go mod tidy
|
|
|
|
# Development setup
|
|
dev-setup: env-setup deps ## Setup development environment
|
|
@echo "Setting up development environment..."
|
|
go mod download
|
|
go install github.com/swaggo/swag/cmd/swag@latest
|
|
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
|
@echo "Development environment setup complete!"
|
|
@echo ""
|
|
@echo "Next steps:"
|
|
@echo " 1. Edit config.env with your Fabric network configuration"
|
|
@echo " 2. Run 'make run-dev' to start in development mode"
|
|
@echo " 3. Visit http://localhost:8080/swagger/ for API documentation"
|
|
|
|
# Check code quality
|
|
check: fmt vet lint test ## Run all checks (format, vet, lint, test)
|
|
|
|
# Install dependencies
|
|
deps: ## Download dependencies
|
|
@echo "Downloading dependencies..."
|
|
go mod download
|
|
go mod verify
|
|
|
|
# Show current configuration
|
|
show-config: ## Show current configuration from environment
|
|
@echo "Current Configuration:"
|
|
@echo "PORT: $(shell echo $${PORT:-8080})"
|
|
@echo "ENVIRONMENT: $(shell echo $${ENVIRONMENT:-development})"
|
|
@echo "LOG_LEVEL: $(shell echo $${LOG_LEVEL:-info})"
|
|
@echo "LOG_FORMAT: $(shell echo $${LOG_FORMAT:-text})"
|
|
@echo "CHANNEL_NAME: $(shell echo $${CHANNEL_NAME:-mychannel})"
|
|
@echo "CHAINCODE_NAME: $(shell echo $${CHAINCODE_NAME:-basic})"
|