| 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: golangci-lint |
| golangci-lint: |
| $(if $(GO_LINT), ,go install $(GO_LINT_URI)) |
| @echo "##### Running golangci-lint" |
| golangci-lint run -v |
| |
| .PHONY: gosec |
| gosec: |
| $(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: verify |
| verify: golangci-lint gosec govulncheck |
| |
| .PHONY: test |
| test: |
| @echo "##### Running tests" |
| go test -race -cover -coverprofile=coverage.coverprofile -covermode=atomic -v ./... |