mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-28 18:01:01 -06:00
bcc85be991
This package attempts to install itself to GOROOT which will fail for non-root users. Most users will have already installed the vet tool via a system package, so it shouldn't be necessary to 'go get' here. Moreover, the 'vet' make target already checks that it is installed before running it, running 'go get' if necessary. This is the output when running 'make updatedeps' as a regular user without this change: ``` $ make updatedeps go get -u github.com/mitchellh/gox go get -u golang.org/x/tools/cmd/stringer go get -u golang.org/x/tools/cmd/vet go install golang.org/x/tools/cmd/vet: open /usr/local/go/pkg/tool/linux_amd64/vet: permission denied make: *** [updatedeps] Error 1 ```
62 lines
1.8 KiB
Makefile
62 lines
1.8 KiB
Makefile
TEST?=./...
|
|
VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods -nilfunc -printf -rangeloops -shift -structtags -unsafeptr
|
|
|
|
default: test
|
|
|
|
# bin generates the releaseable binaries for Terraform
|
|
bin: generate
|
|
@sh -c "'$(CURDIR)/scripts/build.sh'"
|
|
|
|
# dev creates binaries for testing Terraform locally. These are put
|
|
# into ./bin/ as well as $GOPATH/bin
|
|
dev: generate
|
|
@TF_DEV=1 sh -c "'$(CURDIR)/scripts/build.sh'"
|
|
|
|
# test runs the unit tests and vets the code
|
|
test: generate
|
|
TF_ACC= go test $(TEST) $(TESTARGS) -timeout=30s -parallel=4
|
|
@$(MAKE) vet
|
|
|
|
# testacc runs acceptance tests
|
|
testacc: generate
|
|
@if [ "$(TEST)" = "./..." ]; then \
|
|
echo "ERROR: Set TEST to a specific package"; \
|
|
exit 1; \
|
|
fi
|
|
TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 45m
|
|
|
|
# testrace runs the race checker
|
|
testrace: generate
|
|
TF_ACC= go test -race $(TEST) $(TESTARGS)
|
|
|
|
# updatedeps installs all the dependencies that Terraform needs to run
|
|
# and build.
|
|
updatedeps:
|
|
go get -u github.com/mitchellh/gox
|
|
go get -u golang.org/x/tools/cmd/stringer
|
|
go list ./... \
|
|
| xargs go list -f '{{join .Deps "\n"}}' \
|
|
| grep -v github.com/hashicorp/terraform \
|
|
| sort -u \
|
|
| xargs go get -f -u -v
|
|
|
|
# vet runs the Go source code static analysis tool `vet` to find
|
|
# any common errors.
|
|
vet:
|
|
@go tool vet 2>/dev/null ; if [ $$? -eq 3 ]; then \
|
|
go get golang.org/x/tools/cmd/vet; \
|
|
fi
|
|
@echo "go tool vet $(VETARGS) ."
|
|
@go tool vet $(VETARGS) . ; if [ $$? -eq 1 ]; then \
|
|
echo ""; \
|
|
echo "Vet found suspicious constructs. Please check the reported constructs"; \
|
|
echo "and fix them if necessary before submitting the code for reviewal."; \
|
|
fi
|
|
|
|
# generate runs `go generate` to build the dynamically generated
|
|
# source files.
|
|
generate:
|
|
go generate ./...
|
|
|
|
.PHONY: bin default generate test updatedeps vet
|