-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
76 lines (61 loc) · 2.07 KB
/
Copy pathMakefile
File metadata and controls
76 lines (61 loc) · 2.07 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
.PHONY: run test test-coverage doccheck build migrate clean stop swagger reset clean-docker
# Configuration
PROJECT_PREFIX = cloud-
COMPOSE_FILES = -f docker-compose.yml
TEST_TIMEOUT ?= 2m
run: stop
docker compose $(COMPOSE_FILES) up -d --build
@echo "Services are running. API at http://localhost:8080"
dev: build
docker compose $(COMPOSE_FILES) up -d --build
docker compose $(COMPOSE_FILES) logs -f api
stop:
@echo "Stopping services..."
docker compose $(COMPOSE_FILES) stop
@fuser -k 8080/tcp 2>/dev/null || true
# Nuclear cleanup for stale resources
clean-docker:
@echo "Cleaning up stale Docker resources..."
@docker compose $(COMPOSE_FILES) down --remove-orphans 2>/dev/null || true
@# Remove any remaining containers with our prefix
@docker ps -a --filter "name=$(PROJECT_PREFIX)" -q | xargs -r docker rm -f
@# Remove project network specifically if it's stuck
@docker network rm $(PROJECT_PREFIX)network 2>/dev/null || true
@echo "Pruning stale networks..."
@docker network prune -f
reset: clean-docker
@echo "Performing fresh start..."
rm -rf bin
docker compose $(COMPOSE_FILES) up -d --build
@echo "System reset complete."
test:
go test ./cmd/... ./internal/... ./pkg/...
test-coverage:
go test -coverprofile=coverage.out ./cmd/... ./internal/... ./pkg/...
go tool cover -func=coverage.out
@rm coverage.out
test-e2e:
go test -timeout $(TEST_TIMEOUT) ./tests/...
doccheck:
go run ./cmd/doccheck --root .
swagger:
@$(shell go env GOPATH)/bin/swag init -d ./ -g cmd/api/main.go -o docs/swagger --parseDependency --parseInternal
build:
mkdir -p bin
go build -o bin/api ./cmd/api
go build -o bin/cloud cmd/cloud/*.go
go build -o bin/storage-node cmd/storage-node/main.go
go build -o bin/csi-driver ./cmd/csi-driver
go build -o bin/ccm ./cmd/ccm
go build -o bin/autoscaler-server ./cmd/autoscaler-server
install: build
mkdir -p $(HOME)/.local/bin
cp bin/cloud $(HOME)/.local/bin/cloud
@./scripts/setup_path.sh
migrate:
@echo "Running migrations..."
@docker compose up -d postgres
@sleep 2
@go run cmd/api/main.go --migrate-only
clean: clean-docker
rm -rf bin