committtttt
This commit is contained in:
125
backend/Makefile
Normal file
125
backend/Makefile
Normal file
@@ -0,0 +1,125 @@
|
||||
.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"
|
Reference in New Issue
Block a user