1.PHONY: build test run clean lint fmt vet build-full
2
3BINARY_NAME=matcha
4BUILD_DIR=bin
5
6generate_gif:
7 alias matcha="go run ."
8 vhs demo.tape
9 mv demo.gif public/assets/demo.gif
10
11build:
12 go build -o $(BUILD_DIR)/$(BINARY_NAME) .
13
14build-full:
15 @echo "Building with version information..."
16 @VERSION=$$(git describe --tags --abbrev=0 2>/dev/null || echo "dev"); \
17 COMMIT=$$(git rev-parse --short HEAD 2>/dev/null || echo "unknown"); \
18 DATE=$$(date +%Y-%m-%d); \
19 echo "Version: $$VERSION"; \
20 echo "Commit: $$COMMIT"; \
21 echo "Date: $$DATE"; \
22 go build -ldflags="-X 'main.version=$$VERSION' -X 'main.commit=$$COMMIT' -X 'main.date=$$DATE'" -o $(BUILD_DIR)/$(BINARY_NAME)-full .;
23
24run:
25 go run .
26
27test:
28 go test ./...
29
30test-verbose:
31 go test -v ./...
32
33test-coverage:
34 go test -coverprofile=coverage.out ./...
35 go tool cover -html=coverage.out -o coverage.html
36
37clean:
38 rm -rf $(BUILD_DIR)
39 rm -f coverage.out coverage.html
40
41fmt:
42 go fmt ./...
43
44vet:
45 go vet ./...
46
47lint: fmt vet
48
49all: lint test build