115 lines
2.3 KiB
Makefile
115 lines
2.3 KiB
Makefile
# Go Backend Template Makefile
|
|
|
|
# Database configuration (update these for your project)
|
|
DB_USERNAME := postgres
|
|
DB_PASSWORD := postgres
|
|
DB_HOST := localhost
|
|
DB_PORT := 5432
|
|
DB_NAME := template_db
|
|
|
|
DB_URL = postgres://$(DB_USERNAME):$(DB_PASSWORD)@$(DB_HOST):$(DB_PORT)/$(DB_NAME)?sslmode=disable
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
DETECTED_OS := Windows
|
|
else
|
|
DETECTED_OS := $(shell sh -c 'uname 2>/dev/null || echo Unknown')
|
|
endif
|
|
|
|
.SILENT: help
|
|
help:
|
|
@echo
|
|
@echo "Usage: make [command]"
|
|
@echo
|
|
@echo "Commands:"
|
|
@echo " build Build the application"
|
|
@echo " run Run the application"
|
|
@echo " test Run unit tests"
|
|
@echo " fmt Format source code"
|
|
@echo
|
|
@echo " migration-create name={name} Create a new migration"
|
|
@echo " migration-up Run all pending migrations"
|
|
@echo " migration-down Rollback last migration"
|
|
@echo
|
|
@echo " docker-up Start docker services"
|
|
@echo " docker-down Stop docker services"
|
|
@echo
|
|
|
|
# Build
|
|
|
|
.SILENT: build
|
|
build:
|
|
@go build -o ./bin/server ./cmd/server/main.go
|
|
@echo "✓ Binary built: ./bin/server"
|
|
|
|
# Run
|
|
|
|
.SILENT: run
|
|
run:
|
|
@ENV_MODE=development go run cmd/server/main.go
|
|
|
|
# Test
|
|
|
|
.SILENT: test
|
|
test:
|
|
@go test ./... -v
|
|
|
|
# Format
|
|
|
|
.SILENT: fmt
|
|
fmt:
|
|
@go fmt ./...
|
|
@echo "✓ Code formatted"
|
|
|
|
# Migrations
|
|
|
|
.SILENT: migration-create
|
|
migration-create:
|
|
@if [ -z "$(name)" ]; then \
|
|
echo "Error: name parameter is required"; \
|
|
echo "Usage: make migration-create name=your_migration_name"; \
|
|
exit 1; \
|
|
fi
|
|
@migrate create -ext sql -dir ./migrations -seq $(name)
|
|
@echo "✓ Migration created: $(name)"
|
|
|
|
.SILENT: migration-up
|
|
migration-up:
|
|
@migrate -database $(DB_URL) -path ./migrations up
|
|
@echo "✓ Migrations applied"
|
|
|
|
.SILENT: migration-down
|
|
migration-down:
|
|
@migrate -database $(DB_URL) -path ./migrations down 1
|
|
@echo "✓ Last migration rolled back"
|
|
|
|
# Docker
|
|
|
|
.SILENT: docker-up
|
|
docker-up:
|
|
@docker-compose up -d
|
|
@echo "✓ Docker services started"
|
|
|
|
.SILENT: docker-down
|
|
docker-down:
|
|
@docker-compose down
|
|
@echo "✓ Docker services stopped"
|
|
|
|
# Dependencies
|
|
|
|
.SILENT: deps
|
|
deps:
|
|
@go mod download
|
|
@go mod tidy
|
|
@echo "✓ Dependencies updated"
|
|
|
|
# Clean
|
|
|
|
.SILENT: clean
|
|
clean:
|
|
@rm -rf ./bin
|
|
@echo "✓ Build artifacts cleaned"
|
|
|
|
# Default
|
|
|
|
.DEFAULT_GOAL := help
|