Skip to content

Commit b837e5a

Browse files
committed
makefile command
1 parent 24dfae0 commit b837e5a

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

packages/maas/Makefile

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,67 @@ endif
1919
.PHONY: all
2020
all: build
2121

22+
.PHONY: fmt
23+
fmt: ## Applies the correct code style to source files using go fmt.
24+
cd bff && go fmt ./...
25+
26+
.PHONY: vet
27+
vet: . ## Runs static analysis tools on source files and reports suspicious constructs that could be bugs or syntactical errors.
28+
cd bff && go vet ./...
29+
30+
##@ Dependencies
31+
32+
## Location to install dependencies to
33+
LOCALBIN ?= $(shell pwd)/bin
34+
$(LOCALBIN):
35+
mkdir -p $(LOCALBIN)
36+
37+
## Tool Binaries
38+
ENVTEST ?= $(LOCALBIN)/setup-envtest-$(ENVTEST_VERSION)
39+
GOLANGCI_LINT ?= $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION)
40+
41+
## Tool Versions
42+
GOLANGCI_LINT_VERSION ?= v2.0.2
43+
ENVTEST_VERSION ?= release-0.17
44+
45+
.PHONY: envtest
46+
envtest: $(ENVTEST) ## Download setup-envtest locally if necessary.
47+
$(ENVTEST): $(LOCALBIN)
48+
$(call go-install-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest,$(ENVTEST_VERSION))
49+
50+
.PHONY: golangci-lint
51+
golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
52+
$(GOLANGCI_LINT): $(LOCALBIN)
53+
$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/v2/cmd/golangci-lint,${GOLANGCI_LINT_VERSION})
54+
55+
56+
# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
57+
# $1 - target path with name of binary (ideally with version)
58+
# $2 - package url which can be installed
59+
# $3 - specific version of package
60+
define go-install-tool
61+
@[ -f $(1) ] || { \
62+
set -e; \
63+
package=$(2)@$(3) ;\
64+
echo "Downloading $${package}" ;\
65+
GOBIN=$(LOCALBIN) go install $${package} ;\
66+
mv "$$(echo "$(1)" | sed "s/-$(3)$$//")" $(1) ;\
67+
}
68+
endef
69+
2270
.PHONY: help
2371
help: ## Display this help.
2472
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
2573

2674

75+
.PHONY: test
76+
test: fmt vet envtest
77+
cd bff && \
78+
ABS_BIN_DIR="$$(pwd)/../bin" && \
79+
ASSETS_PATH="$$(../bin/setup-envtest-release-0.17 use 1.29.0 --bin-dir "$$ABS_BIN_DIR" -p path)" && \
80+
ENVTEST_ASSETS_DIR="$$(dirname "$$(dirname "$$ASSETS_PATH")")" \
81+
go test ./internal/api -v
82+
2783
############ Dev Environment ############
2884

2985
.PHONY: dev-install-dependencies

0 commit comments

Comments
 (0)