mirror of https://github.com/prometheus/prometheus
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.5 KiB
96 lines
2.5 KiB
# TODO: Fix this on windows. |
|
ALL_SRC := $(shell find . -name '*.go' \ |
|
-not -path './vendor/*' \ |
|
-not -path '*/gen-go/*' \ |
|
-type f | sort) |
|
ALL_PKGS := $(shell go list $(sort $(dir $(ALL_SRC)))) |
|
|
|
GOTEST_OPT?=-v -race -timeout 30s |
|
GOTEST_OPT_WITH_COVERAGE = $(GOTEST_OPT) -coverprofile=coverage.txt -covermode=atomic |
|
GOTEST=go test |
|
GOFMT=gofmt |
|
GOLINT=golint |
|
GOVET=go vet |
|
EMBEDMD=embedmd |
|
# TODO decide if we need to change these names. |
|
TRACE_ID_LINT_EXCEPTION="type name will be used as trace.TraceID by other packages" |
|
TRACE_OPTION_LINT_EXCEPTION="type name will be used as trace.TraceOptions by other packages" |
|
README_FILES := $(shell find . -name '*README.md' | sort | tr '\n' ' ') |
|
|
|
.DEFAULT_GOAL := fmt-lint-vet-embedmd-test |
|
|
|
.PHONY: fmt-lint-vet-embedmd-test |
|
fmt-lint-vet-embedmd-test: fmt lint vet embedmd test |
|
|
|
# TODO enable test-with-coverage in tavis |
|
.PHONY: travis-ci |
|
travis-ci: fmt lint vet embedmd test test-386 |
|
|
|
all-pkgs: |
|
@echo $(ALL_PKGS) | tr ' ' '\n' | sort |
|
|
|
all-srcs: |
|
@echo $(ALL_SRC) | tr ' ' '\n' | sort |
|
|
|
.PHONY: test |
|
test: |
|
$(GOTEST) $(GOTEST_OPT) $(ALL_PKGS) |
|
|
|
.PHONY: test-386 |
|
test-386: |
|
GOARCH=386 $(GOTEST) -v -timeout 30s $(ALL_PKGS) |
|
|
|
.PHONY: test-with-coverage |
|
test-with-coverage: |
|
$(GOTEST) $(GOTEST_OPT_WITH_COVERAGE) $(ALL_PKGS) |
|
|
|
.PHONY: fmt |
|
fmt: |
|
@FMTOUT=`$(GOFMT) -s -l $(ALL_SRC) 2>&1`; \ |
|
if [ "$$FMTOUT" ]; then \ |
|
echo "$(GOFMT) FAILED => gofmt the following files:\n"; \ |
|
echo "$$FMTOUT\n"; \ |
|
exit 1; \ |
|
else \ |
|
echo "Fmt finished successfully"; \ |
|
fi |
|
|
|
.PHONY: lint |
|
lint: |
|
@LINTOUT=`$(GOLINT) $(ALL_PKGS) | grep -v $(TRACE_ID_LINT_EXCEPTION) | grep -v $(TRACE_OPTION_LINT_EXCEPTION) 2>&1`; \ |
|
if [ "$$LINTOUT" ]; then \ |
|
echo "$(GOLINT) FAILED => clean the following lint errors:\n"; \ |
|
echo "$$LINTOUT\n"; \ |
|
exit 1; \ |
|
else \ |
|
echo "Lint finished successfully"; \ |
|
fi |
|
|
|
.PHONY: vet |
|
vet: |
|
# TODO: Understand why go vet downloads "github.com/google/go-cmp v0.2.0" |
|
@VETOUT=`$(GOVET) ./... | grep -v "go: downloading" 2>&1`; \ |
|
if [ "$$VETOUT" ]; then \ |
|
echo "$(GOVET) FAILED => go vet the following files:\n"; \ |
|
echo "$$VETOUT\n"; \ |
|
exit 1; \ |
|
else \ |
|
echo "Vet finished successfully"; \ |
|
fi |
|
|
|
.PHONY: embedmd |
|
embedmd: |
|
@EMBEDMDOUT=`$(EMBEDMD) -d $(README_FILES) 2>&1`; \ |
|
if [ "$$EMBEDMDOUT" ]; then \ |
|
echo "$(EMBEDMD) FAILED => embedmd the following files:\n"; \ |
|
echo "$$EMBEDMDOUT\n"; \ |
|
exit 1; \ |
|
else \ |
|
echo "Embedmd finished successfully"; \ |
|
fi |
|
|
|
.PHONY: install-tools |
|
install-tools: |
|
go get -u golang.org/x/tools/cmd/cover |
|
go get -u golang.org/x/lint/golint |
|
go get -u github.com/rakyll/embedmd
|
|
|