...
1.PHONY: help check
2.DEFAULT_GOAL := help
3
4SUBPKGS=cpu disk docker host internal load mem net process
5TAG=$(shell date +'v3.%y.%-m' --date='last Month')
6
7help: ## Show help
8 @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
9
10check: ## Check
11 errcheck -ignore="Close|Run|Write" ./...
12 golint ./... | egrep -v 'underscores|HttpOnly|should have comment|comment on exported|CamelCase|VM|UID' && exit 1 || exit 0
13
14BUILD_FAIL_PATTERN=grep -v "exec format error" | grep "build failed" && exit 1 || exit 0
15build_test: ## test only buildable
16 # Supported operating systems
17 GOOS=linux GOARCH=amd64 go test ./... | $(BUILD_FAIL_PATTERN)
18 GOOS=linux GOARCH=386 go test ./... | $(BUILD_FAIL_PATTERN)
19 GOOS=linux GOARCH=arm go test ./... | $(BUILD_FAIL_PATTERN)
20 GOOS=linux GOARCH=arm64 go test ./... | $(BUILD_FAIL_PATTERN)
21 GOOS=linux GOARCH=riscv64 go test ./... | $(BUILD_FAIL_PATTERN)
22 GOOS=freebsd go test ./... | $(BUILD_FAIL_PATTERN)
23 GOOS=freebsd GOARCH=arm go test ./... | $(BUILD_FAIL_PATTERN)
24 CGO_ENABLED=0 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN)
25 GOOS=windows go test ./... | $(BUILD_FAIL_PATTERN)
26 # Operating systems supported for building only (not implemented error if used)
27 GOOS=solaris go test ./... | $(BUILD_FAIL_PATTERN)
28 GOOS=dragonfly go test ./... | $(BUILD_FAIL_PATTERN)
29 GOOS=netbsd go test ./... | $(BUILD_FAIL_PATTERN)
30 # cross build to OpenBSD not worked since process has "C"
31# GOOS=openbsd go test ./... | $(BUILD_FAIL_PATTERN)
32
33ifeq ($(shell uname -s), Darwin)
34 CGO_ENABLED=1 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN)
35endif
36 @echo 'Successfully built on all known operating systems'
37
38vet:
39 GOOS=darwin GOARCH=amd64 go vet ./...
40 GOOS=darwin GOARCH=386 go vet ./...
41 GOOS=darwin GOARCH=arm64 go vet ./...
42
43 GOOS=dragonfly GOARCH=amd64 go vet ./...
44
45 GOOS=freebsd GOARCH=amd64 go vet ./...
46 GOOS=freebsd GOARCH=386 go vet ./...
47 GOOS=freebsd GOARCH=arm go vet ./...
48
49 GOOS=linux GOARCH=386 go vet ./...
50 GOOS=linux GOARCH=amd64 go vet ./...
51 GOOS=linux GOARCH=arm64 go vet ./...
52 GOOS=linux GOARCH=arm go vet ./...
53 GOOS=linux GOARCH=mips64 go vet ./...
54 GOOS=linux GOARCH=mips64le go vet ./...
55 GOOS=linux GOARCH=mips go vet ./...
56 GOOS=linux GOARCH=mipsle go vet ./...
57 GOOS=linux GOARCH=ppc64le go vet ./...
58 GOOS=linux GOARCH=riscv64 go vet ./...
59 GOOS=linux GOARCH=s390x go vet ./...
60
61 GOOS=netbsd GOARCH=amd64 go vet ./...
62
63 GOOS=openbsd GOARCH=386 go vet ./...
64 GOOS=openbsd GOARCH=amd64 go vet ./...
65
66 GOOS=solaris GOARCH=amd64 go vet ./...
67
68 GOOS=windows GOARCH=amd64 go vet ./...
69 GOOS=windows GOARCH=386 go vet ./...
70
71macos_test:
72 CGO_ENABLED=0 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN)
73 CGO_ENABLED=1 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN)
74
75init_tools:
76 go get github.com/golang/dep/cmd/dep
77
78release:
79 git tag $(TAG)
80 git push origin $(TAG)
View as plain text