Files
AI-Support/backend/Makefile
2025-09-13 06:48:55 +03:00

125 lines
2.9 KiB
Makefile

.PHONY: build run test clean deps docker-build docker-run docker-compose-up docker-compose-down
# Variables
BINARY_NAME=support
BINARY_UNIX=$(BINARY_NAME)_unix
VERSION?=1.0.0
BUILD_TIME?=$(shell date -u '+%Y-%m-%d_%H:%M:%S')
COMMIT?=$(shell git rev-parse --short HEAD)
# Go build flags
LDFLAGS=-ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME) -X main.Commit=$(COMMIT)"
# Default target
all: deps build
# Install dependencies
deps:
go mod download
go mod tidy
# Build the application
build:
go build $(LDFLAGS) -o $(BINARY_NAME) cmd/main.go
# Build for Linux
build-linux:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o $(BINARY_UNIX) cmd/main.go
# Run the application
run:
go run cmd/main.go
# Run tests
test:
go test -v ./...
# Run tests with coverage
test-coverage:
go test -v -cover ./...
# Clean build artifacts
clean:
go clean
rm -f $(BINARY_NAME)
rm -f $(BINARY_UNIX)
# Build Docker image
docker-build:
docker build -t $(BINARY_NAME):$(VERSION) .
# Run Docker container
docker-run:
docker run -p 8080:8080 $(BINARY_NAME):$(VERSION)
# Start Docker Compose
docker-compose-up:
docker-compose up -d
# Stop Docker Compose
docker-compose-down:
docker-compose down
# View Docker Compose logs
docker-compose-logs:
docker-compose logs -f
# Run database migrations
migrate-up:
go run cmd/migrate.go up
# Rollback database migrations
migrate-down:
go run cmd/migrate.go down
# Seed database
seed-db:
go run cmd/seed.go
# Format code
fmt:
go fmt ./...
# Lint code
lint:
golangci-lint run
# Security check
security:
gosec ./...
# Generate API documentation
docs:
swag init -g cmd/main.go
# Install development tools
install-tools:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest
go install github.com/swaggo/swag/cmd/swag@latest
# Help target
help:
@echo "Available targets:"
@echo " all - Install dependencies and build the application"
@echo " deps - Install dependencies"
@echo " build - Build the application"
@echo " build-linux - Build the application for Linux"
@echo " run - Run the application"
@echo " test - Run tests"
@echo " test-coverage - Run tests with coverage"
@echo " clean - Clean build artifacts"
@echo " docker-build - Build Docker image"
@echo " docker-run - Run Docker container"
@echo " docker-compose-up - Start Docker Compose"
@echo " docker-compose-down - Stop Docker Compose"
@echo " docker-compose-logs - View Docker Compose logs"
@echo " migrate-up - Run database migrations"
@echo " migrate-down - Rollback database migrations"
@echo " seed-db - Seed database"
@echo " fmt - Format code"
@echo " lint - Lint code"
@echo " security - Security check"
@echo " docs - Generate API documentation"
@echo " install-tools - Install development tools"
@echo " help - Show this help message"