...
1
2GOLANGCI_LINT_VERSION=v1.48.0
3
4LINTER=./bin/golangci-lint
5LINTER_VERSION_FILE=./bin/.golangci-lint-version-$(GOLANGCI_LINT_VERSION)
6
7TEST_BINARY=./go-server-sdk.test
8
9ALL_SOURCES := $(shell find * -type f -name "*.go")
10
11COVERAGE_PROFILE_RAW=./build/coverage_raw.out
12COVERAGE_PROFILE_RAW_HTML=./build/coverage_raw.html
13COVERAGE_PROFILE_FILTERED=./build/coverage.out
14COVERAGE_PROFILE_FILTERED_HTML=./build/coverage.html
15COVERAGE_ENFORCER_FLAGS=-skipcode "// COVERAGE" -packagestats -filestats -showcode
16
17.PHONY: build clean test test-coverage lint
18
19build:
20 go build ./...
21
22clean:
23 go clean
24
25test:
26 go test -race -v ./...
27
28test-coverage: $(COVERAGE_PROFILE_RAW)
29 go run github.com/launchdarkly-labs/go-coverage-enforcer@latest $(COVERAGE_ENFORCER_FLAGS) -outprofile $(COVERAGE_PROFILE_FILTERED) $(COVERAGE_PROFILE_RAW)
30 go tool cover -html $(COVERAGE_PROFILE_FILTERED) -o $(COVERAGE_PROFILE_FILTERED_HTML)
31 go tool cover -html $(COVERAGE_PROFILE_RAW) -o $(COVERAGE_PROFILE_RAW_HTML)
32
33$(COVERAGE_PROFILE_RAW): $(ALL_SOURCES)
34 @mkdir -p ./build
35 go test -coverprofile $(COVERAGE_PROFILE_RAW) ./... >/dev/null
36
37$(LINTER_VERSION_FILE):
38 rm -f $(LINTER)
39 curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | bash -s $(GOLANGCI_LINT_VERSION)
40 touch $(LINTER_VERSION_FILE)
41
42lint: $(LINTER_VERSION_FILE)
43 $(LINTER) run ./...
View as plain text