verify-staging-import: ignore k8s.io/kube-gen/test

This commit is contained in:
Dr. Stefan Schimanski 2017-07-24 14:32:54 +02:00
parent 98042b77f3
commit 927341c6d3

View File

@ -25,7 +25,14 @@ kube::golang::setup_env
function print_forbidden_imports () { function print_forbidden_imports () {
set -o errexit # this was unset by || set -o errexit # this was unset by ||
local PACKAGE="$1" local REPO="${1%%/*}" # everything in front of the /
# find packages with extended glob support of bash (supports inversion)
local PACKAGES=($(
shopt -s extglob;
eval ls -d -1 ./vendor/k8s.io/${1}/
))
shift shift
local RE="" local RE=""
local SEP="" local SEP=""
@ -34,28 +41,28 @@ function print_forbidden_imports () {
SEP='\|' SEP='\|'
done done
local FORBIDDEN=$( local FORBIDDEN=$(
go list -f $'{{with $package := .ImportPath}}{{range $.Imports}}{{$package}} imports {{.}}\n{{end}}{{end}}' ./vendor/k8s.io/${PACKAGE}/... | go list -f $'{{with $package := .ImportPath}}{{range $.Imports}}{{$package}} imports {{.}}\n{{end}}{{end}}' "${PACKAGES[@]/%/...}" |
sed 's|^k8s.io/kubernetes/vendor/||;s| k8s.io/kubernetes/vendor/| |' | sed 's|^k8s.io/kubernetes/vendor/||;s| k8s.io/kubernetes/vendor/| |' |
grep -v " k8s.io/${PACKAGE}" | grep -v " k8s.io/${REPO}" |
grep " k8s.io/" | grep " k8s.io/" |
grep -v -e "imports \(${RE}\)" grep -v -e "imports \(${RE}\)"
) )
if [ -n "${FORBIDDEN}" ]; then if [ -n "${FORBIDDEN}" ]; then
echo "${PACKAGE} has a forbidden dependency:" echo "${REPO} has a forbidden dependency:"
echo echo
echo "${FORBIDDEN}" | sed 's/^/ /' echo "${FORBIDDEN}" | sed 's/^/ /'
echo echo
return 1 return 1
fi fi
local TEST_FORBIDDEN=$( local TEST_FORBIDDEN=$(
go list -f $'{{with $package := .ImportPath}}{{range $.TestImports}}{{$package}} imports {{.}}\n{{end}}{{end}}' ./vendor/k8s.io/${PACKAGE}/... | go list -f $'{{with $package := .ImportPath}}{{range $.TestImports}}{{$package}} imports {{.}}\n{{end}}{{end}}' "${PACKAGES[@]/%/...}" |
sed 's|^k8s.io/kubernetes/vendor/||;s| k8s.io/kubernetes/vendor/| |' | sed 's|^k8s.io/kubernetes/vendor/||;s| k8s.io/kubernetes/vendor/| |' |
grep -v " k8s.io/${PACKAGE}" | grep -v " k8s.io/${REPO}" |
grep " k8s.io/" | grep " k8s.io/" |
grep -v -e "imports \(${RE}\)" grep -v -e "imports \(${RE}\)"
) )
if [ -n "${TEST_FORBIDDEN}" ]; then if [ -n "${TEST_FORBIDDEN}" ]; then
echo "${PACKAGE} has a forbidden dependency in test code:" echo "${REPO} has a forbidden dependency in test code:"
echo echo
echo "${TEST_FORBIDDEN}" | sed 's/^/ /' echo "${TEST_FORBIDDEN}" | sed 's/^/ /'
echo echo
@ -68,6 +75,8 @@ RC=0
print_forbidden_imports apimachinery k8s.io/kube-openapi || RC=1 print_forbidden_imports apimachinery k8s.io/kube-openapi || RC=1
print_forbidden_imports api k8s.io/apimachinery || RC=1 print_forbidden_imports api k8s.io/apimachinery || RC=1
print_forbidden_imports kube-gen k8s.io/apimachinery k8s.io/client-go k8s.io/gengo k8s.io/kube-openapi || RC=1 print_forbidden_imports kube-gen k8s.io/apimachinery k8s.io/client-go k8s.io/gengo k8s.io/kube-openapi || RC=1
print_forbidden_imports 'kube-gen/!(test)' k8s.io/gengo k8s.io/kube-openapi || RC=1
print_forbidden_imports kube-gen/test k8s.io/apimachinery k8s.io/client-go || RC=1
print_forbidden_imports client-go k8s.io/apimachinery k8s.io/api || RC=1 print_forbidden_imports client-go k8s.io/apimachinery k8s.io/api || RC=1
print_forbidden_imports apiserver k8s.io/apimachinery k8s.io/client-go k8s.io/api k8s.io/kube-openapi || RC=1 print_forbidden_imports apiserver k8s.io/apimachinery k8s.io/client-go k8s.io/api k8s.io/kube-openapi || RC=1
print_forbidden_imports metrics k8s.io/apimachinery k8s.io/client-go k8s.io/api || RC=1 print_forbidden_imports metrics k8s.io/apimachinery k8s.io/client-go k8s.io/api || RC=1