Make gofmt errors fail build and add `make fmt`
We may want to consider requiring `gofmt -s` compliance in future builds, but for now we just use `gofmt`.
This commit is contained in:
parent
08ad2d2d7e
commit
6d6487e288
22
Makefile
22
Makefile
|
@ -4,12 +4,12 @@ VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods -nilfunc -printf
|
||||||
default: test
|
default: test
|
||||||
|
|
||||||
# bin generates the releaseable binaries for Terraform
|
# bin generates the releaseable binaries for Terraform
|
||||||
bin: generate
|
bin: fmtcheck generate
|
||||||
@sh -c "'$(CURDIR)/scripts/build.sh'"
|
@sh -c "'$(CURDIR)/scripts/build.sh'"
|
||||||
|
|
||||||
# dev creates binaries for testing Terraform locally. These are put
|
# dev creates binaries for testing Terraform locally. These are put
|
||||||
# into ./bin/ as well as $GOPATH/bin
|
# into ./bin/ as well as $GOPATH/bin
|
||||||
dev: generate
|
dev: fmtcheck generate
|
||||||
@TF_DEV=1 sh -c "'$(CURDIR)/scripts/build.sh'"
|
@TF_DEV=1 sh -c "'$(CURDIR)/scripts/build.sh'"
|
||||||
|
|
||||||
quickdev: generate
|
quickdev: generate
|
||||||
|
@ -18,22 +18,22 @@ quickdev: generate
|
||||||
# Shorthand for quickly building the core of Terraform. Note that some
|
# Shorthand for quickly building the core of Terraform. Note that some
|
||||||
# changes will require a rebuild of everything, in which case the dev
|
# changes will require a rebuild of everything, in which case the dev
|
||||||
# target should be used.
|
# target should be used.
|
||||||
core-dev: generate
|
core-dev: fmtcheck generate
|
||||||
go install github.com/hashicorp/terraform
|
go install github.com/hashicorp/terraform
|
||||||
|
|
||||||
# Shorthand for building and installing just one plugin for local testing.
|
# Shorthand for building and installing just one plugin for local testing.
|
||||||
# Run as (for example): make plugin-dev PLUGIN=provider-aws
|
# Run as (for example): make plugin-dev PLUGIN=provider-aws
|
||||||
plugin-dev: generate
|
plugin-dev: fmtcheck generate
|
||||||
go install github.com/hashicorp/terraform/builtin/bins/$(PLUGIN)
|
go install github.com/hashicorp/terraform/builtin/bins/$(PLUGIN)
|
||||||
mv $(GOPATH)/bin/$(PLUGIN) $(GOPATH)/bin/terraform-$(PLUGIN)
|
mv $(GOPATH)/bin/$(PLUGIN) $(GOPATH)/bin/terraform-$(PLUGIN)
|
||||||
|
|
||||||
# test runs the unit tests and vets the code
|
# test runs the unit tests and vets the code
|
||||||
test: generate
|
test: fmtcheck generate
|
||||||
TF_ACC= go test $(TEST) $(TESTARGS) -timeout=30s -parallel=4
|
TF_ACC= go test $(TEST) $(TESTARGS) -timeout=30s -parallel=4
|
||||||
@$(MAKE) vet
|
@$(MAKE) vet
|
||||||
|
|
||||||
# testacc runs acceptance tests
|
# testacc runs acceptance tests
|
||||||
testacc: generate
|
testacc: fmtcheck generate
|
||||||
@if [ "$(TEST)" = "./..." ]; then \
|
@if [ "$(TEST)" = "./..." ]; then \
|
||||||
echo "ERROR: Set TEST to a specific package. For example,"; \
|
echo "ERROR: Set TEST to a specific package. For example,"; \
|
||||||
echo " make testacc TEST=./builtin/providers/aws"; \
|
echo " make testacc TEST=./builtin/providers/aws"; \
|
||||||
|
@ -42,7 +42,7 @@ testacc: generate
|
||||||
TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 90m
|
TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 90m
|
||||||
|
|
||||||
# testrace runs the race checker
|
# testrace runs the race checker
|
||||||
testrace: generate
|
testrace: fmtcheck generate
|
||||||
TF_ACC= go test -race $(TEST) $(TESTARGS)
|
TF_ACC= go test -race $(TEST) $(TESTARGS)
|
||||||
|
|
||||||
# updatedeps installs all the dependencies that Terraform needs to run
|
# updatedeps installs all the dependencies that Terraform needs to run
|
||||||
|
@ -84,4 +84,10 @@ vet:
|
||||||
generate:
|
generate:
|
||||||
go generate ./...
|
go generate ./...
|
||||||
|
|
||||||
.PHONY: bin default generate test updatedeps vet
|
fmt:
|
||||||
|
gofmt -w .
|
||||||
|
|
||||||
|
fmtcheck:
|
||||||
|
@sh -c "'$(CURDIR)/scripts/gofmtcheck.sh'"
|
||||||
|
|
||||||
|
.PHONY: bin default generate test updatedeps vet fmt fmtcheck
|
||||||
|
|
|
@ -18,6 +18,7 @@ GIT_DIRTY=$(test -n "`git status --porcelain`" && echo "+CHANGES" || true)
|
||||||
XC_ARCH=${XC_ARCH:-"386 amd64 arm"}
|
XC_ARCH=${XC_ARCH:-"386 amd64 arm"}
|
||||||
XC_OS=${XC_OS:-linux darwin windows freebsd openbsd}
|
XC_OS=${XC_OS:-linux darwin windows freebsd openbsd}
|
||||||
|
|
||||||
|
|
||||||
# Get dependencies unless running in quick mode
|
# Get dependencies unless running in quick mode
|
||||||
if [ "${TF_QUICKDEV}x" == "x" ]; then
|
if [ "${TF_QUICKDEV}x" == "x" ]; then
|
||||||
echo "==> Getting dependencies..."
|
echo "==> Getting dependencies..."
|
||||||
|
@ -30,6 +31,7 @@ rm -f bin/*
|
||||||
rm -rf pkg/*
|
rm -rf pkg/*
|
||||||
mkdir -p bin/
|
mkdir -p bin/
|
||||||
|
|
||||||
|
|
||||||
# If its dev mode, only build for ourself
|
# If its dev mode, only build for ourself
|
||||||
if [ "${TF_DEV}x" != "x" ]; then
|
if [ "${TF_DEV}x" != "x" ]; then
|
||||||
XC_OS=$(go env GOOS)
|
XC_OS=$(go env GOOS)
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Check gofmt
|
||||||
|
echo "==> Checking that code complies with gofmt requirements..."
|
||||||
|
gofmt_files=$(gofmt -l .)
|
||||||
|
if [[ -n ${gofmt_files} ]]; then
|
||||||
|
echo 'gofmt needs running on the following files:'
|
||||||
|
echo "${gofmt_files}"
|
||||||
|
echo "You can use the command: \`make fmt\` to reformat code."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue