podman

Форк
0
97 строк · 2.7 Кб
1
# TODO: Fix this on windows.
2
ALL_SRC := $(shell find . -name '*.go' \
3
								-not -path './vendor/*' \
4
								-not -path '*/gen-go/*' \
5
								-type f | sort)
6
ALL_PKGS := $(shell go list $(sort $(dir $(ALL_SRC))))
7

8
GOTEST_OPT?=-v -race -timeout 30s
9
GOTEST_OPT_WITH_COVERAGE = $(GOTEST_OPT) -coverprofile=coverage.txt -covermode=atomic
10
GOTEST=go test
11
GOIMPORTS=goimports
12
GOLINT=golint
13
GOVET=go vet
14
EMBEDMD=embedmd
15
# TODO decide if we need to change these names.
16
TRACE_ID_LINT_EXCEPTION="type name will be used as trace.TraceID by other packages"
17
TRACE_OPTION_LINT_EXCEPTION="type name will be used as trace.TraceOptions by other packages"
18
README_FILES := $(shell find . -name '*README.md' | sort | tr '\n' ' ')
19

20
.DEFAULT_GOAL := imports-lint-vet-embedmd-test
21

22
.PHONY: imports-lint-vet-embedmd-test
23
imports-lint-vet-embedmd-test: imports lint vet embedmd test
24

25
# TODO enable test-with-coverage in tavis
26
.PHONY: travis-ci
27
travis-ci: imports lint vet embedmd test test-386
28

29
all-pkgs:
30
	@echo $(ALL_PKGS) | tr ' ' '\n' | sort
31

32
all-srcs:
33
	@echo $(ALL_SRC) | tr ' ' '\n' | sort
34

35
.PHONY: test
36
test:
37
	$(GOTEST) $(GOTEST_OPT) $(ALL_PKGS)
38

39
.PHONY: test-386
40
test-386:
41
	GOARCH=386 $(GOTEST) -v -timeout 30s $(ALL_PKGS)
42

43
.PHONY: test-with-coverage
44
test-with-coverage:
45
	$(GOTEST) $(GOTEST_OPT_WITH_COVERAGE) $(ALL_PKGS)
46

47
.PHONY: imports
48
imports:
49
	@IMPORTSOUT=`$(GOIMPORTS) -l $(ALL_SRC) 2>&1`; \
50
	if [ "$$IMPORTSOUT" ]; then \
51
		echo "$(GOIMPORTS) FAILED => goimports the following files:\n"; \
52
		echo "$$IMPORTSOUT\n"; \
53
		exit 1; \
54
	else \
55
	    echo "Imports finished successfully"; \
56
	fi
57

58
.PHONY: lint
59
lint:
60
	@LINTOUT=`$(GOLINT) $(ALL_PKGS) | grep -v $(TRACE_ID_LINT_EXCEPTION) | grep -v $(TRACE_OPTION_LINT_EXCEPTION) 2>&1`; \
61
	if [ "$$LINTOUT" ]; then \
62
		echo "$(GOLINT) FAILED => clean the following lint errors:\n"; \
63
		echo "$$LINTOUT\n"; \
64
		exit 1; \
65
	else \
66
	    echo "Lint finished successfully"; \
67
	fi
68

69
.PHONY: vet
70
vet:
71
    # TODO: Understand why go vet downloads "github.com/google/go-cmp v0.2.0"
72
	@VETOUT=`$(GOVET) ./... | grep -v "go: downloading" 2>&1`; \
73
	if [ "$$VETOUT" ]; then \
74
		echo "$(GOVET) FAILED => go vet the following files:\n"; \
75
		echo "$$VETOUT\n"; \
76
		exit 1; \
77
	else \
78
	    echo "Vet finished successfully"; \
79
	fi
80
	
81
.PHONY: embedmd
82
embedmd:
83
	@EMBEDMDOUT=`$(EMBEDMD) -d $(README_FILES) 2>&1`; \
84
	if [ "$$EMBEDMDOUT" ]; then \
85
		echo "$(EMBEDMD) FAILED => embedmd the following files:\n"; \
86
		echo "$$EMBEDMDOUT\n"; \
87
		exit 1; \
88
	else \
89
	    echo "Embedmd finished successfully"; \
90
	fi
91

92
.PHONY: install-tools
93
install-tools:
94
	go install golang.org/x/lint/golint@latest
95
	go install golang.org/x/tools/cmd/cover@latest
96
	go install golang.org/x/tools/cmd/goimports@latest
97
	go install github.com/rakyll/embedmd@latest
98

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.