| GO_LINT=$(shell which golangci-lint 2> /dev/null || echo '') | |
| GO_LINT_URI=github.com/golangci/golangci-lint/cmd/golangci-lint@latest | |
| GO_SEC=$(shell which gosec 2> /dev/null || echo '') | |
| GO_SEC_URI=github.com/securego/gosec/v2/cmd/gosec@latest | |
| GO_VULNCHECK=$(shell which govulncheck 2> /dev/null || echo '') | |
| GO_VULNCHECK_URI=golang.org/x/vuln/cmd/govulncheck@latest | |
| .PHONY: verify | |
| verify: sec govulncheck lint test | |
| .PHONY: lint | |
| lint: | |
| $(if $(GO_LINT), ,go install $(GO_LINT_URI)) | |
| @echo "##### Running golangci-lint #####" | |
| golangci-lint run -v | |
| .PHONY: sec | |
| sec: | |
| $(if $(GO_SEC), ,go install $(GO_SEC_URI)) | |
| @echo "##### Running gosec #####" | |
| gosec ./... | |
| .PHONY: govulncheck | |
| govulncheck: | |
| $(if $(GO_VULNCHECK), ,go install $(GO_VULNCHECK_URI)) | |
| @echo "##### Running govulncheck #####" | |
| govulncheck ./... | |
| .PHONY: test | |
| test: | |
| @echo "##### Running tests #####" | |
| go test -race -cover -coverprofile=coverage.coverprofile -covermode=atomic -v ./... |