-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
135 lines (114 loc) · 4.01 KB
/
Makefile
File metadata and controls
135 lines (114 loc) · 4.01 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# -----------------------------------------------------------------------------
# Conduit-Go Makefile
# -----------------------------------------------------------------------------
# Bu Makefile, development sürecini hızlandırmak için yaygın komutları içerir.
#
# Kullanım:
# make run # Uygulamayı başlat
# make test # Testleri çalıştır
# make build # Binary oluştur
# make clean # Temizlik
# make docker-up # Docker container'ları başlat
# -----------------------------------------------------------------------------
.PHONY: help run build test clean docker-up docker-down migrate-up migrate-down
# Varsayılan hedef: help
.DEFAULT_GOAL := help
# Go binary yolu
BINARY_NAME=conduit-go
BINARY_PATH=./bin/$(BINARY_NAME)
# Build flags
LDFLAGS=-ldflags "-s -w"
## help: Tüm make komutlarını gösterir
help:
@echo "Kullanılabilir komutlar:"
@echo " make run - Uygulamayı başlat (hot-reload ile)"
@echo " make build - Production binary oluştur"
@echo " make test - Testleri çalıştır"
@echo " make clean - Binary ve cache'i temizle"
@echo " make docker-up - Docker container'ları başlat"
@echo " make docker-down - Docker container'ları durdur"
@echo " make fmt - Kodu formatla"
@echo " make lint - Linter çalıştır"
## run: Uygulamayı development modda başlatır
run:
@echo "🚀 Uygulama başlatılıyor..."
@go run cmd/api/main.go
## build: Production binary oluşturur
build:
@echo "🔨 Binary oluşturuluyor..."
@mkdir -p ./bin
@go build $(LDFLAGS) -o $(BINARY_PATH) cmd/api/main.go
@echo "✅ Binary oluşturuldu: $(BINARY_PATH)"
## test: Tüm testleri çalıştırır
test:
@echo "🧪 Testler çalıştırılıyor..."
@go test -v ./...
## test-coverage: Test coverage raporu oluşturur
test-coverage:
@echo "📊 Test coverage hesaplanıyor..."
@go test -coverprofile=coverage.out ./...
@go tool cover -html=coverage.out -o coverage.html
@echo "✅ Coverage raporu: coverage.html"
## clean: Binary ve cache dosyalarını temizler
clean:
@echo "🧹 Temizlik yapılıyor..."
@rm -rf ./bin
@go clean
@echo "✅ Temizlik tamamlandı"
## fmt: Go kod formatlama
fmt:
@echo "💅 Kod formatlanıyor..."
@go fmt ./...
@echo "✅ Format tamamlandı"
## lint: golangci-lint ile kod analizi
lint:
@echo "🔍 Linter çalıştırılıyor..."
@if command -v golangci-lint >/dev/null 2>&1; then \
golangci-lint run; \
else \
echo "⚠️ golangci-lint yüklü değil. Yüklemek için:"; \
echo " go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"; \
fi
## docker-up: Docker container'ları başlatır (MySQL, Redis, vb.)
docker-up:
@echo "🐳 Docker container'lar başlatılıyor..."
@docker-compose up -d
@echo "✅ Container'lar başlatıldı"
## docker-down: Docker container'ları durdurur
docker-down:
@echo "🐳 Docker container'lar durduruluyor..."
@docker-compose down
@echo "✅ Container'lar durduruldu"
## deps: Go dependency'lerini günceller
deps:
@echo "📦 Dependency'ler güncelleniyor..."
@go mod tidy
@go mod download
@echo "✅ Dependency'ler güncellendi"
## security: Go security checker (gosec) çalıştırır
security:
@echo "🔒 Security check yapılıyor..."
@if command -v gosec >/dev/null 2>&1; then \
gosec ./...; \
else \
echo "⚠️ gosec yüklü değil. Yüklemek için:"; \
echo " go install github.com/securego/gosec/v2/cmd/gosec@latest"; \
fi
# Queue Worker Commands
.PHONY: worker worker-all worker-emails
# Start queue worker for default queue
worker:
@echo "Starting queue worker (default queue)..."
@go run cmd/worker/main.go
# Start queue worker for all queues
worker-all:
@echo "Starting queue worker (all queues)..."
@go run cmd/worker/main.go default emails notifications uploads
# Start queue worker for emails queue only
worker-emails:
@echo "Starting queue worker (emails queue)..."
@go run cmd/worker/main.go emails
# Test queue system
test-queue:
@echo "Running queue tests..."
@go test -v ./tests -run Queue