-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
97 lines (78 loc) · 2.37 KB
/
Makefile
File metadata and controls
97 lines (78 loc) · 2.37 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
.PHONY: all build clean test lint generate-antlr help
# 变量定义
PROJECT_NAME := flexops
SERVICES := admin runtime scheduler tcc-coordinator gateway
BUILD_DIR := build
GO := go
GOFLAGS := -v
LDFLAGS := -s -w
# 默认目标
all: build
# 帮助信息
help:
@echo "FlexOps Makefile Commands:"
@echo " make build - 构建所有服务"
@echo " make build-admin - 构建admin服务"
@echo " make build-runtime - 构建runtime服务"
@echo " make build-scheduler - 构建scheduler服务"
@echo " make build-tcc - 构建tcc-coordinator服务"
@echo " make build-gateway - 构建gateway服务"
@echo " make test - 运行测试"
@echo " make lint - 运行代码检查"
@echo " make generate-antlr - 生成ANTLR4代码"
@echo " make clean - 清理构建文件"
# 构建所有服务
build: $(SERVICES)
# 构建各个服务
admin:
@echo "Building admin service..."
@mkdir -p $(BUILD_DIR)
$(GO) build $(GOFLAGS) -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/admin ./cmd/admin
runtime:
@echo "Building runtime service..."
@mkdir -p $(BUILD_DIR)
$(GO) build $(GOFLAGS) -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/runtime ./cmd/runtime
scheduler:
@echo "Building scheduler service..."
@mkdir -p $(BUILD_DIR)
$(GO) build $(GOFLAGS) -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/scheduler ./cmd/scheduler
tcc-coordinator:
@echo "Building tcc-coordinator service..."
@mkdir -p $(BUILD_DIR)
$(GO) build $(GOFLAGS) -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/tcc-coordinator ./cmd/tcc-coordinator
gateway:
@echo "Building gateway service..."
@mkdir -p $(BUILD_DIR)
$(GO) build $(GOFLAGS) -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/gateway ./cmd/gateway
# 运行测试
test:
$(GO) test -v -cover ./...
# 代码检查
lint:
@which golangci-lint > /dev/null || (echo "请先安装 golangci-lint" && exit 1)
golangci-lint run ./...
# 生成ANTLR4代码
generate-antlr:
@echo "Generating ANTLR4 code..."
@./scripts/generate_antlr.sh
# 清理构建文件
clean:
@echo "Cleaning build artifacts..."
@rm -rf $(BUILD_DIR)
@rm -f go.sum
$(GO) clean
# 下载依赖
deps:
$(GO) mod download
$(GO) mod tidy
# 运行各个服务(开发模式)
run-admin:
$(GO) run ./cmd/admin
run-runtime:
$(GO) run ./cmd/runtime
run-scheduler:
$(GO) run ./cmd/scheduler
run-tcc:
$(GO) run ./cmd/tcc-coordinator
run-gateway:
$(GO) run ./cmd/gateway