-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
73 lines (50 loc) · 2.03 KB
/
Makefile
File metadata and controls
73 lines (50 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.DEFAULT_GOAL := help
.PHONY: help install install-fe install-be lint lint-fe lint-be test-be docker-up docker-down docker-clean seed run
# ============= Variables =============
DOCKER_COMPOSE_FILE := docker-compose.yml
FRONTEND_DIR := frontend
BACKEND_DIR := backend
SEED_SCRIPT := scripts/seed/main.go
# =========== Install =============
install-fe: ## Install frontend dependencies
cd ${FRONTEND_DIR} && pnpm install
install-be: ## Install backend dependencies
cd ${BACKEND_DIR} && go mod download
install: ## Install all dependencies
@echo "Installing frontend and backend dependencies..."
@$(MAKE) install-fe
@$(MAKE) install-be
@echo "Dependencies installed successfully."
# ============= Lint =============
lint-fe: ## Lint frontend code
cd ${FRONTEND_DIR} && pnpm lint
lint-be: ## Lint backend code
cd ${BACKEND_DIR} && golangci-lint run
lint: ## Lint all code
@echo "Linting frontend and backend code..."
@$(MAKE) lint-fe
@$(MAKE) lint-be
@echo "Linting completed successfully."
# ============= Test =============
test-be: ## Test backend code
cd ${BACKEND_DIR} && go test ./...
# ============= Docker =============
docker-up: ## Start Docker containers
docker compose -f ${DOCKER_COMPOSE_FILE} up -d
docker-down: ## Stop Docker containers
docker compose -f ${DOCKER_COMPOSE_FILE} stop
docker-clean : ## Stop and remove Docker containers, networks, images, and volumes
docker compose -f ${DOCKER_COMPOSE_FILE} down --rmi all -v --remove-orphans
# ============= Seed =============
seed: ## Seed the database with initial data
cd ${BACKEND_DIR} && go run ${SEED_SCRIPT}
# ============= Run =============
run: ## Run the application
@echo "Running frontend and backend..."
docker compose up db -d && \
cd ${BACKEND_DIR} && go run main.go & \
cd ${FRONTEND_DIR} && pnpm dev
# ============= Help =============
help: ## Show this help message.
@echo "\033[36mAvailable commands:\033[0m"
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-25s\033[0m %s\n", $$1, $$2}' | sort