diff --git a/hack/.shellcheck_failures b/hack/.shellcheck_failures index 8effe04e6b6..94965bedcbc 100644 --- a/hack/.shellcheck_failures +++ b/hack/.shellcheck_failures @@ -23,7 +23,6 @@ ./hack/lib/version.sh ./hack/make-rules/make-help.sh ./hack/test-integration.sh -./hack/verify-no-vendor-cycles.sh ./hack/verify-test-featuregates.sh ./test/cmd/diff.sh ./test/cmd/discovery.sh diff --git a/hack/verify-no-vendor-cycles.sh b/hack/verify-no-vendor-cycles.sh index 84d1a210d9b..8a00c205879 100755 --- a/hack/verify-no-vendor-cycles.sh +++ b/hack/verify-no-vendor-cycles.sh @@ -17,28 +17,33 @@ set -o errexit set -o nounset set -o pipefail +set -x; -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. +KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. +source "${KUBE_ROOT}/hack/lib/init.sh" export GO111MODULE=auto -staging_repos=($(ls "${KUBE_ROOT}/staging/src/k8s.io/")) +staging_repos=() +kube::util::read-array staging_repos < <(kube::util::list_staging_repos) staging_repos_pattern=$(IFS="|"; echo "${staging_repos[*]}") +cd "${KUBE_ROOT}" + failed=false -for i in $(find vendor/ -type d); do - deps=$(go list -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' ./$i 2> /dev/null || echo "") +while IFS= read -r dir; do + deps=$(go list -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' "${dir}" 2> /dev/null || echo "") deps_on_main=$(echo "${deps}" | grep -v "k8s.io/kubernetes/vendor/" | grep "k8s.io/kubernetes" || echo "") if [ -n "${deps_on_main}" ]; then - echo "Package ${i} has a cyclic dependency on the main repository." + echo "Package ${dir} has a cyclic dependency on the main repository." failed=true fi deps_on_staging=$(echo "${deps}" | grep "k8s.io/kubernetes/vendor/k8s.io" | grep -E "k8s.io\/${staging_repos_pattern}\>" || echo "") if [ -n "${deps_on_staging}" ]; then - echo "Package ${i} has a cyclic dependency on staging repository packages: ${deps_on_staging}" + echo "Package ${dir} has a cyclic dependency on staging repository packages: ${deps_on_staging}" failed=true fi -done +done < <(find ./vendor -type d) if [[ "${failed}" == "true" ]]; then exit 1