-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
80 lines (61 loc) · 3.48 KB
/
Makefile
File metadata and controls
80 lines (61 loc) · 3.48 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
.PHONY: all lint test integration conformance docker proto generate clean
GOFLAGS := -race
BINARY_AEGISD := bin/aegisd
BINARY_AEGISCTL := bin/aegisctl
PROTO_DIR := pkg/schema
PROTO_OUT_GO := pkg/schema
# ── default ────────────────────────────────────────────────────────────────────
all: proto generate lint test
# ── codegen ────────────────────────────────────────────────────────────────────
proto:
@which protoc >/dev/null 2>&1 || (echo "ERROR: protoc not found; install protobuf-compiler" && exit 1)
@which protoc-gen-go >/dev/null 2>&1 || go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
@which protoc-gen-go-grpc >/dev/null 2>&1 || go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
protoc \
--go_out=$(PROTO_OUT_GO) --go_opt=paths=source_relative \
--go-grpc_out=$(PROTO_OUT_GO) --go-grpc_opt=paths=source_relative \
-I $(PROTO_DIR) \
$(PROTO_DIR)/events.proto \
$(PROTO_DIR)/store.proto
generate:
go generate ./...
# ── quality gates ───────────────────────────────────────────────────────────────
lint:
@which golangci-lint >/dev/null 2>&1 || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
golangci-lint run ./...
# ── tests ──────────────────────────────────────────────────────────────────────
test:
go test $(GOFLAGS) ./... -timeout 60s
test-unit:
go test $(GOFLAGS) ./pkg/... -timeout 60s
test-golden:
go test $(GOFLAGS) ./pkg/schema/... ./pkg/eventlog/... -run TestGolden -v
integration:
go test $(GOFLAGS) ./integration/... -timeout 120s
conformance:
cd conformance && python -m pytest -x --timeout=300 -q
# ── build ──────────────────────────────────────────────────────────────────────
build:
go build -o $(BINARY_AEGISD) ./cmd/aegisd
go build -o $(BINARY_AEGISCTL) ./cmd/aegisctl
docker:
docker build -t aegis/aegisd:dev -f build/aegisd.Dockerfile .
docker-dev:
docker compose -f deploy/docker-compose.dev.yml up --build
docker-prod:
docker compose -f deploy/docker-compose.prod.yml up -d
docker-down:
docker compose -f deploy/docker-compose.dev.yml down 2>/dev/null || true
docker compose -f deploy/docker-compose.prod.yml down 2>/dev/null || true
# ── python sdk ────────────────────────────────────────────────────────────────
python-install:
cd python && pip install -e ".[dev]"
python-test:
cd python && python -m pytest -x -q
python-lint:
cd python && ruff check aegis_sdk/
# ── clean ─────────────────────────────────────────────────────────────────────
clean:
rm -rf bin/
find . -name "*.pb.go" -delete
find . -name "__pycache__" -type d -exec rm -rf {} +