-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathMakefile
54 lines (39 loc) · 1.88 KB
/
Makefile
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
PROJECT_NAME=log4jScanner
GOPATH=$(shell go env GOPATH)
VERSION=$(shell $(GOPATH)/bin/semver get release)
BUILD_TIME=$(shell TZ=UTC date -u '+%Y-%m-%d_%I:%M:%S%p')
all: clean init sec build release
build: build-windows build-darwin build-linux
release: release-windows release-darwin release-linux
test:
go test .
init:
go get -u \
github.com./maykonlf/semver-cli/cmd/semver \
github.com./securego/gosec/v2/cmd/gosec
sec: init
$(GOPATH)/bin/gosec -exclude=G402 ./...
upver: init
$(GOPATH)/bin/semver up alpha
build-windows:
GOOS=windows GOARCH=amd64 go build -o "build/windows/$(PROJECT_NAME)-$(VERSION).exe" -ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME)"
build-darwin:
GOOS=darwin GOARCH=amd64 go build -o "build/darwin/$(PROJECT_NAME)-$(VERSION)" -ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME)"
build-linux:
GOOS=linux GOARCH=amd64 go build -o "build/linux/$(PROJECT_NAME)-$(VERSION)" -ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME)"
release-windows: release-dir
zip -j release/$(PROJECT_NAME)-windows.zip build/windows/$(PROJECT_NAME)-$(VERSION).exe
echo $(shell shasum -a 256 build/windows/$(PROJECT_NAME)-$(VERSION).exe | cut -f1 -d" ") $(PROJECT_NAME)-$(VERSION).exe > release/windows.sha256.txt
release-darwin: release-dir
zip -j release/$(PROJECT_NAME)-darwin.zip build/darwin/$(PROJECT_NAME)-$(VERSION)
echo $(shell shasum -a 256 build/darwin/$(PROJECT_NAME)-$(VERSION) | cut -f1 -d" ") $(PROJECT_NAME)-$(VERSION) > release/darwin.sha256.txt
release-linux: release-dir
zip -j release/$(PROJECT_NAME)-linux.zip build/linux/$(PROJECT_NAME)-$(VERSION)
echo $(shell shasum -a 256 build/linux/$(PROJECT_NAME)-$(VERSION) | cut -f1 -d" ") $(PROJECT_NAME)-$(VERSION) > release/linux.sha256.txt
release-dir:
mkdir release || true
clean:
rm -rf ./build || true
rm -rf ./release || true
rm *.log || true
rm *.csv || true