first commit, mate!
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
.PHONY: help build run test clean docker-build docker-up docker-down fmt lint
|
||||
|
||||
# Variables
|
||||
APP_NAME=blogging-cms
|
||||
GO_VERSION=1.21
|
||||
PORT=8080
|
||||
|
||||
help: ## Display this help screen
|
||||
@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
install-deps: ## Install Go dependencies
|
||||
go mod download
|
||||
go mod tidy
|
||||
|
||||
build: ## Build the application
|
||||
CGO_ENABLED=0 GOOS=linux go build -o $(APP_NAME) .
|
||||
|
||||
run: ## Run the application locally
|
||||
go run main.go
|
||||
|
||||
dev: install-deps ## Run in development mode with hot reload
|
||||
which air > /dev/null || go install github.com/cosmtrek/air@latest
|
||||
air
|
||||
|
||||
test: ## Run tests
|
||||
go test -v -race -coverprofile=coverage.out ./...
|
||||
|
||||
test-coverage: test ## Run tests and display coverage
|
||||
go tool cover -html=coverage.out
|
||||
|
||||
clean: ## Clean build artifacts
|
||||
rm -f $(APP_NAME)
|
||||
rm -f coverage.out
|
||||
rm -rf dist/
|
||||
|
||||
fmt: ## Format code
|
||||
gofmt -s -w .
|
||||
go mod tidy
|
||||
|
||||
lint: ## Run linter
|
||||
which golangci-lint > /dev/null || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
golangci-lint run ./...
|
||||
|
||||
vet: ## Run go vet
|
||||
go vet ./...
|
||||
|
||||
docker-build: ## Build Docker image
|
||||
docker build -t $(APP_NAME):latest .
|
||||
|
||||
docker-up: ## Start Docker containers
|
||||
docker-compose up -d
|
||||
|
||||
docker-down: ## Stop Docker containers
|
||||
docker-compose down
|
||||
|
||||
docker-logs: ## View Docker logs
|
||||
docker-compose logs -f app
|
||||
|
||||
docker-clean: ## Remove Docker containers and volumes
|
||||
docker-compose down -v
|
||||
|
||||
docker-rebuild: docker-down docker-build docker-up ## Rebuild and restart containers
|
||||
|
||||
db-shell: ## Access MariaDB shell
|
||||
docker-compose exec mariadb mysql -u cms_user -p blogging_cms
|
||||
|
||||
db-reset: ## Reset database (DANGEROUS!)
|
||||
docker-compose exec mariadb mysql -u root -p -e "DROP DATABASE blogging_cms; CREATE DATABASE blogging_cms;"
|
||||
|
||||
setup: ## Complete setup for development
|
||||
cp .env.example .env
|
||||
go mod download
|
||||
docker-compose up -d
|
||||
@echo "Setup complete! Run 'make dev' to start developing."
|
||||
|
||||
update-deps: ## Update Go dependencies
|
||||
go get -u ./...
|
||||
go mod tidy
|
||||
|
||||
check: fmt vet lint ## Run all checks
|
||||
|
||||
all: clean install-deps build test ## Build and test
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
Reference in New Issue
Block a user