Merge pull request #12396 from ptabor/20201014-deps

test: Adding dependencies consistency check
release-3.5
Jingyi Hu 2020-10-14 20:44:29 +08:00 committed by GitHub
commit b08a46d37d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 9 deletions

35
test
View File

@ -303,6 +303,7 @@ function fmt_pass {
receiver_name \
commit_title \
mod_tidy \
dep \
; do
run_pass "${p}" "${@}"
done
@ -504,17 +505,33 @@ function bom_pass {
######## VARIOUS CHECKERS ######################################################
function dep_pass {
log_callout "Checking package dependencies..."
# don't pull in etcdserver package
pushd clientv3 >/dev/null
badpkg="(etcdserver$|mvcc$|backend$|grpc-gateway)"
deps=$(go list -f '{{ .Deps }}' | sed 's/ /\n/g' | grep -E "${badpkg}" || echo "")
popd >/dev/null
if [ -n "$deps" ]; then
log_error -e "clientv3 has masked dependencies:\\n${deps}"
function dump_deps_of_module() {
local module
if ! module=$(run go list -m); then
return 255
fi
run go list -f "{{if not .Indirect}}{{if .Version}}{{.Path}},{{.Version}},${module}{{end}}{{end}}" -m all
}
# Checks whether dependencies are consistent across modules
function dep_pass {
local all_dependencies
all_dependencies=$(run_for_modules dump_deps_of_module | sort) || return 2
local duplicates
duplicates=$(echo "${all_dependencies}" | cut -d ',' -f 1,2 | sort | uniq | cut -d ',' -f 1 | sort | uniq -d) || return 2
# echo
for dup in ${duplicates}; do
log_error "FAIL: inconsistent versions for depencency: ${dup}"
echo "${dup}:"
echo "${all_dependencies}" | grep "${dup}" | sed 's|\([^,]*\),\([^,]*\),\([^,]*\)| - \2 from: \3|g'
done
if [[ -n "${duplicates}" ]]; then
log_error "FAIL: inconsistent dependencies"
return 2
else
log_success "SUCCESS: dependencies are consistent across modules"
fi
}
function release_pass {