forked from Legit-Labs/legitify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
93 lines (74 loc) · 2.36 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
VETTERS = "asmdecl,assign,atomic,bools,buildtag,cgocall,composites,copylocks,errorsas,httpresponse,loopclosure,lostcancel,nilfunc,printf,shift,stdmethods,structtag,tests,unmarshal,unreachable,unsafeptr,unusedresult"
GOFMT_FILES = $(shell go list -f '{{.Dir}}' ./... | grep -v '/pb')
BINARY_NAME = legitify
BINARY_LOCATION = $(shell which ${BINARY_NAME} || echo ~/go/bin/${BINARY_NAME})
install_deps:
go mod tidy
.PHONY: install_deps
verify:
go mod verify
.PHONY: verify
build: generate_wire
go build -o "${BINARY_NAME}" main.go
.PHONY: build
build_and_install_deps: install_deps build
.PHONY: build_and_install_deps
clean:
rm -f "${BINARY_NAME}"
rm -rf docs/github
rm -rf docs/gitlab
rm -rf docs/monomarkdown.md
.PHONY: clean
install:
go install
.PHONY: install
uninstall:
rm -f "${BINARY_LOCATION}"
.PHONY: uninstall
fmtcheck:
@command -v goimports > /dev/null 2>&1 || go install golang.org/x/tools/cmd/goimports
@CHANGES="$$(goimports -d $(GOFMT_FILES))"; \
if [ -n "$${CHANGES}" ]; then \
echo "Unformatted (run goimports -w .):\n\n$${CHANGES}\n\n"; \
exit 1; \
fi
@CHANGES="$$(gofmt -s -d $(GOFMT_FILES))"; \
if [ -n "$${CHANGES}" ]; then \
echo "Unformatted (run gofmt -s -w .):\n\n$${CHANGES}\n\n"; \
exit 1; \
fi
.PHONY: fmtcheck
spellcheck:
@command -v misspell > /dev/null 2>&1 || go install github.com/client9/misspell/cmd/misspell
@misspell -locale="US" -error -source="text" **/*
.PHONY: spellcheck
staticcheck:
@command -v staticcheck > /dev/null 2>&1 || go install honnef.co/go/tools/cmd/staticcheck
@staticcheck -checks="all" -tests $(GOFMT_FILES)
.PHONY: staticcheck
instal_mocks:
go install github.com/golang/mock/[email protected]
.PHONY: instal_mocks
generate_mocks: instal_mocks
~/go/bin/mockgen -destination=mocks/mock_engine.go -package=mocks -source=./internal/opa/opa_engine/engine.go Enginer
.PHONY: generate_mocks
install_wire:
go install github.com/google/wire/cmd/wire@latest
.PHONY: install_wire
generate_wire: install_wire
~/go/bin/wire gen ./cmd/...
.PHONY: generate_mocks
test: generate_mocks
@go test \
-count=1 \
-short \
-timeout=5m \
-vet="${VETTERS}" \
`go list ./... | grep -vE '^github.com/Legit-Labs/legitify/e2e'`
.PHONY: test
docs: build
./legitify generate-docs -o generated-docs.yaml
rm -rf ./docs/github
rm -rf ./docs/gitlab
./scripts/gen-gh-pages-docs.py generated-docs.yaml ./docs/
.PHONY: docs