Add verify-gofmt as a Bazel test.

Also, moved --flaky_test_attempts=3 out of .bazelrc since it was annoying.
pull/6/head
Joe Finney 2017-02-10 16:58:08 -08:00
parent a6952bc9e5
commit 27cc32b84e
4 changed files with 23 additions and 11 deletions

View File

@ -2,8 +2,5 @@
build --verbose_failures
test --test_output=errors
# Retry tests up to 3 times if they fail.
test --flaky_test_attempts=3
# Include git version info
build --workspace_status_command hack/print-workspace-status.sh

View File

@ -500,7 +500,7 @@ endef
@echo "$$BAZEL_TEST_HELP_INFO"
else
bazel-test:
bazel test //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //hack/... //hack:verify-all
bazel test --flaky_test_attempts=3 //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //hack/... //hack:verify-all
endif
ifeq ($(PRINT_HELP),y)

View File

@ -27,10 +27,21 @@ sh_test(
tags = ["manual"],
)
sh_test(
name = "verify-gofmt",
srcs = ["verify-gofmt.sh"],
data = [
"//:all-srcs",
"@io_bazel_rules_go_toolchain//:toolchain",
],
tags = ["manual"],
)
test_suite(
name = "verify-all",
tags = ["manual"],
tests = [
"verify-boilerplate",
"verify-gofmt",
],
)

View File

@ -23,10 +23,15 @@ set -o pipefail
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::verify_go_version
cd "${KUBE_ROOT}"
# Prefer bazel's gofmt.
gofmt="external/io_bazel_rules_go_toolchain/bin/gofmt"
if [[ ! -x "${gofmt}" ]]; then
gofmt=$(which gofmt)
kube::golang::verify_go_version
fi
find_files() {
find . -not \( \
\( \
@ -38,14 +43,13 @@ find_files() {
-o -wholename '*/third_party/*' \
-o -wholename '*/vendor/*' \
-o -wholename './staging' \
-o -wholename '*/bindata.go' \
\) -prune \
\) -name '*.go'
}
GOFMT="gofmt -s -w"
bad_files=$(find_files | xargs $GOFMT -l)
if [[ -n "${bad_files}" ]]; then
echo "!!! '$GOFMT' needs to be run on the following files: "
echo "${bad_files}"
diff=$(find_files | xargs ${gofmt} -d -s 2>&1)
if [[ -n "${diff}" ]]; then
echo "${diff}"
exit 1
fi