From 97783f9093f07ba3d2e3d244abc5ac65d6b3f189 Mon Sep 17 00:00:00 2001 From: Christoph Blecker Date: Wed, 21 Jun 2017 11:10:25 -0700 Subject: [PATCH] Run hack/verify-govet.sh as part of verify make target This commit ensures that: - go vet will be run as part of the make verify target - the vet make-rule script won't be run directly, as generated_files won't be run in that case - that go vet errors show up in the build log with a start time, finish time, and SUCCESS/FAILED message as part of the verify make rule script --- build/root/Makefile | 9 ++++----- hack/make-rules/verify.sh | 1 - hack/make-rules/vet.sh | 10 ++++++++-- hack/verify-govet.sh | 6 ------ 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/build/root/Makefile b/build/root/Makefile index ea5eec81dd..f5cb077405 100644 --- a/build/root/Makefile +++ b/build/root/Makefile @@ -54,7 +54,7 @@ KUBE_GOLDFLAGS := $(GOLDFLAGS) KUBE_GOGCFLAGS = $(GOGCFLAGS) # Extra options for the release or quick-release options: -KUBE_RELEASE_RUN_TESTS := $(KUBE_RELEASE_RUN_TESTS) +KUBE_RELEASE_RUN_TESTS := $(KUBE_RELEASE_RUN_TESTS) KUBE_FASTBUILD := $(KUBE_FASTBUILD) # This controls the verbosity of the build. Higher numbers mean more output. @@ -121,7 +121,6 @@ verify: else verify: verify_generated_files KUBE_VERIFY_GIT_BRANCH=$(BRANCH) hack/make-rules/verify.sh -v - hack/make-rules/vet.sh endif define UPDATE_HELP_INFO @@ -340,8 +339,8 @@ ifeq ($(PRINT_HELP),y) vet: @echo "$$VET_HELP_INFO" else -vet: - hack/make-rules/vet.sh $(WHAT) +vet: generated_files + CALLED_FROM_MAIN_MAKEFILE=1 hack/make-rules/vet.sh $(WHAT) endif define RELEASE_HELP_INFO @@ -361,7 +360,7 @@ endif define RELEASE_SKIP_TESTS_HELP_INFO # Build a release, but skip tests -# +# # Args: # KUBE_RELEASE_RUN_TESTS: Whether to run tests. Set to 'y' to run tests anyways. # KUBE_FASTBUILD: Whether to cross-compile for other architectures. Set to 'true' to do so. diff --git a/hack/make-rules/verify.sh b/hack/make-rules/verify.sh index 39301a4f63..1560985a8d 100755 --- a/hack/make-rules/verify.sh +++ b/hack/make-rules/verify.sh @@ -25,7 +25,6 @@ source "${KUBE_ROOT}/hack/lib/util.sh" EXCLUDED_PATTERNS=( "verify-all.sh" # this script calls the make rule and would cause a loop "verify-linkcheck.sh" # runs in separate Jenkins job once per day due to high network usage - "verify-govet.sh" # it has a separate make vet target "verify-test-owners.sh" # TODO(rmmh): figure out how to avoid endless conflicts "verify-*-dockerized.sh" # Don't run any scripts that intended to be run dockerized ) diff --git a/hack/make-rules/vet.sh b/hack/make-rules/vet.sh index a53e592612..b93b91eb33 100755 --- a/hack/make-rules/vet.sh +++ b/hack/make-rules/vet.sh @@ -23,9 +23,16 @@ source "${KUBE_ROOT}/hack/lib/init.sh" cd "${KUBE_ROOT}" +# If called directly, exit. +if [[ "${CALLED_FROM_MAIN_MAKEFILE:-""}" == "" ]]; then + echo "ERROR: $0 should not be run directly." >&2 + echo >&2 + echo "Please run this command using \"make vet\"" + exit 1 +fi + # This is required before we run govet for the results to be correct. # See https://github.com/golang/go/issues/16086 for details. -make generated_files go install ./cmd/... # Use eval to preserve embedded quoted strings. @@ -46,5 +53,4 @@ if [[ ${#targets[@]} -eq 0 ]]; then targets=$(go list -e ./... | egrep -v "/(third_party|vendor|staging|clientset_generated)/") fi -set -x go vet "${goflags[@]:+${goflags[@]}}" ${targets[@]} diff --git a/hack/verify-govet.sh b/hack/verify-govet.sh index 13e3c4b39d..223821d08c 100755 --- a/hack/verify-govet.sh +++ b/hack/verify-govet.sh @@ -28,10 +28,4 @@ if [[ "$#" -gt 0 ]]; then ARGHELP="WHAT='$@'" fi -echo "NOTE: $0 has been replaced by 'make vet'" -echo -echo "The equivalent of this invocation is: " -echo " make vet ${ARGHELP}" -echo -echo make --no-print-directory -C "${KUBE_ROOT}" vet WHAT="$@"