-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
39 lines (31 loc) · 1022 Bytes
/
Makefile
File metadata and controls
39 lines (31 loc) · 1022 Bytes
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
.PHONY: build test lint clean install version
# Build variables
BINARY_NAME=zai
BUILD_DIR=bin
VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "1.0.0-dev")
BUILD_TIME?=$(shell date -u '+%Y-%m-%dT%H:%M:%SZ')
COMMIT?=$(shell git rev-parse HEAD 2>/dev/null || echo "unknown")
# Build ldflags
LDFLAGS=-X 'zai/internal/version.Version=$(VERSION)' \
-X 'zai/internal/version.Build=$(BUILD_TIME)' \
-X 'zai/internal/version.Commit=$(COMMIT)'
build: lint
@echo "Building $(BINARY_NAME)..."
@go build -ldflags "$(LDFLAGS)" -o $(BUILD_DIR)/$(BINARY_NAME) .
test:
@echo "Running tests..."
@go test -v -race -cover ./...
lint:
@echo "Running linters..."
@golangci-lint run ./...
install: build
@echo "Installing $(BINARY_NAME)..."
@ln -sf $(PWD)/$(BUILD_DIR)/$(BINARY_NAME) $(HOME)/go/bin/$(BINARY_NAME)
clean:
@echo "Cleaning..."
@rm -f $(BUILD_DIR)/$(BINARY_NAME)
@rm -f $(BINARY_NAME)
version:
@echo "Version: $(VERSION)"
@echo "Build: $(BUILD_TIME)"
@echo "Commit: $(COMMIT)"