-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
54 lines (39 loc) · 1.26 KB
/
Makefile
File metadata and controls
54 lines (39 loc) · 1.26 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
# ABOUTME: Build and development targets for ccvault
# ABOUTME: Provides build, test, and release automation
.PHONY: build test test-race test-short test-coverage clean install lint release
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
LDFLAGS := -ldflags "-X main.version=$(VERSION)"
build:
go build $(LDFLAGS) -o ccvault ./cmd/ccvault
test:
go test ./... -v
test-race:
go test ./... -race
test-short:
go test ./... -short
test-coverage:
go test ./internal/db/... ./pkg/parser/... -coverprofile=coverage.out -covermode=atomic
lint:
golangci-lint run
clean:
rm -f ccvault
rm -rf dist/
install:
go install $(LDFLAGS) ./cmd/ccvault
# Build for multiple platforms
release: clean
mkdir -p dist
GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o dist/ccvault-darwin-amd64 ./cmd/ccvault
GOOS=darwin GOARCH=arm64 go build $(LDFLAGS) -o dist/ccvault-darwin-arm64 ./cmd/ccvault
GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o dist/ccvault-linux-amd64 ./cmd/ccvault
GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o dist/ccvault-linux-arm64 ./cmd/ccvault
# Sync and show stats
sync:
go run ./cmd/ccvault sync
stats:
go run ./cmd/ccvault stats
tui:
go run ./cmd/ccvault tui
# Build analytics cache
cache:
go run ./cmd/ccvault build-cache