-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
52 lines (43 loc) · 2.95 KB
/
Makefile
File metadata and controls
52 lines (43 loc) · 2.95 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
APP=kdiff
VERSION=1.0.0
COMMIT=$(shell git rev-parse --short HEAD 2>/dev/null || echo "none")
DATE=$(shell date -u +%Y-%m-%dT%H:%M:%SZ)
.PHONY: build test dist deb clean help
help:
@echo "Available targets:"
@echo " build - Build the binary to bin/$(APP)"
@echo " install - Build and install to /opt/homebrew/bin"
@echo " test - Run all tests"
@echo " dist - Build distribution binaries for multiple platforms"
@echo " deb - Build Debian package"
@echo " clean - Clean build artifacts"
@echo " redeploy - Clean and rebuild"
@echo " help - Show this help message"
build:
mkdir -p bin
go build -ldflags "-X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o bin/$(APP) .
install: build
cp bin/$(APP) /opt/homebrew/bin/$(APP) 2>/dev/null || echo "Could not install to /opt/homebrew/bin, run 'sudo make install' or add bin/ to PATH"
test:
go test ./...
dist: clean
mkdir -p dist
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-linux-amd64 .
GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-darwin-amd64 .
GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-darwin-arm64 .
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-linux-arm64 .
cd dist && tar -czf $(APP)_$(VERSION)_linux_amd64.tar.gz $(APP)-linux-amd64 && tar -czf $(APP)_$(VERSION)_linux_arm64.tar.gz $(APP)-linux-arm64 && tar -czf $(APP)_$(VERSION)_darwin_amd64.tar.gz $(APP)-darwin-amd64 && tar -czf $(APP)_$(VERSION)_darwin_arm64.tar.gz $(APP)-darwin-arm64
deb: build
mkdir -p dist/deb/usr/local/bin dist/deb/DEBIAN
cp bin/$(APP) dist/deb/usr/local/bin/kdiff
echo "Package: kdiff" > dist/deb/DEBIAN/control
echo "Version: $(VERSION)" >> dist/deb/DEBIAN/control
echo "Section: utils" >> dist/deb/DEBIAN/control
echo "Priority: optional" >> dist/deb/DEBIAN/control
echo "Architecture: amd64" >> dist/deb/DEBIAN/control
echo "Maintainer: You <garajamohan@gmail.com>" >> dist/deb/DEBIAN/control
echo "Description: Kubernetes resource differ" >> dist/deb/DEBIAN/control
dpkg-deb --build dist/deb dist/kdiff_$(VERSION)_amd64.deb
clean:
rm -rf bin dist
redeploy: clean build