-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
106 lines (78 loc) · 2.69 KB
/
Copy pathMakefile
File metadata and controls
106 lines (78 loc) · 2.69 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
SHELL := /bin/sh
###############################################################################
# ----------------- ENVS -----------------
include .env
export
# ----------------- GENERAL -----------------
install:
go mod download
tests:
go test -v ./test/...
lint:
golangci-lint run
coverage:
go test -coverprofile=cover.out ./test/...
go tool cover -html=cover.out
# ----------------- DOCKER -----------------
docker-build:
docker compose build
docker-build-test:
docker compose --profile test build test
docker-up:
docker compose up -d
docker-down:
docker compose down
docker-down-v:
docker compose down -v
docker-logs:
docker compose logs -f
docker-logs-test:
docker compose --profile test logs -f test
docker-ps:
docker compose ps
docker-test:
docker compose --profile test run --rm test
# ----------------- DEVELOPMENT -----------------
run-dev:
go run ./cmd/service/main.go
# ----------------- MIGRATIONS -----------------
migrate-up:
@echo "Running migrations..."
docker compose run --rm migrate -path /migrations -database "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable" up
migrate-down:
@echo "Rolling back migrations..."
docker compose run --rm migrate -path /migrations -database "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable" down 1
# ----------------- CONFIGS -----------------
setup-env:
@if [ ! -f .env ]; then \
echo "Creating .env file from .env.example"; \
cp .env.example .env; \
else \
echo ".env file already exists"; \
fi
# ----------------- HELPERS -----------------
GREEN=\033[0;32m
RESET=\033[0m
help:
@echo -e "$(GREEN)Available commands:$(RESET)"
@echo " install - Download Go dependencies"
@echo " tests - Run tests"
@echo " lint - Run linter"
@echo " coverage - Generate test coverage report"
@echo ""
@echo " docker-build - Build Docker images"
@echo " docker-build-test - Build test Docker container"
@echo " docker-up - Start Docker containers"
@echo " docker-down - Stop Docker containers"
@echo " docker-down-v - Stop Docker containers and remove volumes"
@echo " docker-logs - Show Docker container logs"
@echo " docker-logs-test - Show logs of the test container"
@echo " docker-ps - Show running Docker containers"
@echo " docker-test - Run tests in Docker container"
@echo ""
@echo " run-dev - Run application locally"
@echo ""
@echo " migrate-up - Apply database migrations"
@echo " migrate-down - Rollback last database migration"
@echo ""
@echo " setup-env - Create .env file from .env.example if it doesn't exist"