forked from akamai/terraform-provider-akamai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GNUmakefile
100 lines (79 loc) · 2.55 KB
/
GNUmakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
TEST ?= $$(go list ./...)
GOFMT_FILES ?= $$(find . -name '*.go')
PKG_NAME = akamai
# Local provider install parameters
version = 0.11.0
registry_name = registry.terraform.io
namespace = $(PKG_NAME)
bin_name = terraform-provider-$(PKG_NAME)
build_dir = .build
TF_PLUGIN_DIR ?= ~/.terraform.d/plugins
install_path = $(TF_PLUGIN_DIR)/$(registry_name)/$(namespace)/$(PKG_NAME)/$(version)/$$(go env GOOS)_$$(go env GOARCH)
# Tools versions
golangci-lint-version = v1.41.1
default: build
.PHONY: install
install: build
mkdir -p $(install_path)
cp $(build_dir)/$(bin_name) $(install_path)/$(bin_name)_v$(version)
.PHONY: build
build: fmtcheck
mkdir -p $(build_dir)
go build -tags all -o $(build_dir)/$(bin_name)
.PHONY: check
check: errcheck fmtcheck lint vet
.PHONY: test
test: fmtcheck
go test $(TEST) -v $(TESTARGS) -timeout 20m 2>&1
.PHONY: testacc
testacc: fmtcheck
TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 300m
.PHONY: vet
vet:
@echo "==> Checking source code against vet"
# Appsec package excluded until https://track.akamai.com/jira/browse/SECKSD-12824 is done
@go vet $$(go list ./... | grep -v appsec); if [ $$? -ne 0 ]; then \
echo ""; \
echo "Vet found suspicious constructs. Please check the reported constructs"; \
echo "and fix them if necessary before submitting the code for review."; \
exit 1; \
fi
.PHONY: fmt
fmt:
gofmt -w $(GOFMT_FILES)
.PHONY: terraform-fmt
terraform-fmt:
terraform fmt -recursive -check
.PHONY: fmtcheck
fmtcheck:
@sh -c "'$(CURDIR)/scripts/gofmtcheck.sh'"
.PHONY: errcheck
errcheck:
@sh -c "'$(CURDIR)/scripts/errcheck.sh'"
.PHONY: lint
lint:
@echo "==> Checking source code against golangci-lint"
@$$(go env GOPATH)/bin/golangci-lint run
.PHONY: terraform-lint
terraform-lint:
@echo "==> Checking source code against tflint"
@find ./examples -type f -name "*.tf" | xargs -I % dirname % | sort -u | xargs -I @ sh -c "echo @ && tflint @"
.PHONY: test-compile
test-compile:
go test -c ./akamai $(TESTARGS)
.PHONY: tools.golangci-lint
tools.golangci-lint:
@echo Installing golangci-lint
@curl -sSfL https://github.com/raw/golangci/golangci-lint/master/install.sh | sh -s -- -b $$(go env GOPATH)/bin $(golangci-lint-version)
.PHONY: tools.tflint
tools.tflint:
@echo Installing tf-lint
@curl -s https://github.com/raw/terraform-linters/tflint/master/install_linux.sh | bash
.PHONY: init
init: tools.golangci-lint tools.tflint
.PHONY: dummy-edgerc
dummy-edgerc:
@sh -c "'$(CURDIR)/scripts/dummyedgerc.sh'"
.PHONY: tools.terraform
tools.terraform:
@sh -c "'$(CURDIR)/scripts/install_terraform.sh'"