diff --git a/Makefile b/Makefile index 5cb9231a18..0c1bb3bce7 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,7 @@ lint: ## Run linters. build/env.sh go run build/ci.go lint clean: + ./build/clean_go_build_cache.sh rm -fr build/_workspace/pkg/ $(GOBIN)/* # The devtools target installs tools required for 'go generate'. diff --git a/build/clean_go_build_cache.sh b/build/clean_go_build_cache.sh new file mode 100755 index 0000000000..42a9799049 --- /dev/null +++ b/build/clean_go_build_cache.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; } +function go_version { + version=$(go version) + echo $version + regex="([0-9].[0-9]+.[0-9])" + if [[ $version =~ $regex ]]; then + echo ${BASH_REMATCH[1]} + fi +} + +golang_version=$(go_version) + +# Clean go build cache when go version is greater than or equal to 1.10 +if !(version_gt 1.10 $golang_version); then + go clean -cache +fi