-
Notifications
You must be signed in to change notification settings - Fork 93
Expand file tree
/
Copy pathMakefile
More file actions
66 lines (56 loc) · 1.6 KB
/
Makefile
File metadata and controls
66 lines (56 loc) · 1.6 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
.PHONY: build run test clean docker docker-run lint fmt help
# Variables
BINARY_NAME=mimir
VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
COMMIT?=$(shell git rev-parse --short HEAD 2>/dev/null || echo "none")
DATE?=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
LDFLAGS=-ldflags "-s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(DATE)"
# Default target
help:
@echo "mimir - LLM Semantic Cache"
@echo ""
@echo "Usage:"
@echo " make build Build the binary"
@echo " make run Run locally"
@echo " make test Run tests"
@echo " make lint Run linter"
@echo " make fmt Format code"
@echo " make docker Build Docker image"
@echo " make docker-run Run Docker container"
@echo " make clean Clean build artifacts"
# Build
build:
@echo "Building $(BINARY_NAME)..."
go build $(LDFLAGS) -o bin/$(BINARY_NAME) ./cmd/mimir
# Run locally
run: build
./bin/$(BINARY_NAME)
# Run tests
test:
go test -v -race -cover ./...
# Run linter
lint:
@which golangci-lint > /dev/null || (echo "Installing golangci-lint..." && go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest)
golangci-lint run
# Format code
fmt:
go fmt ./...
goimports -w .
# Build Docker image
docker:
docker build \
--build-arg VERSION=$(VERSION) \
--build-arg COMMIT=$(COMMIT) \
--build-arg DATE=$(DATE) \
-t $(BINARY_NAME):$(VERSION) \
-t $(BINARY_NAME):latest \
.
# Run Docker container
docker-run:
docker run -p 8080:8080 \
-e OPENAI_API_KEY=$(OPENAI_API_KEY) \
$(BINARY_NAME):latest
# Clean
clean:
rm -rf bin/
go clean