From: Anil Belur Date: Sat, 31 Aug 2019 03:04:35 +0000 (+0000) Subject: Merge "INFO validate job improvements" X-Git-Tag: v0.43.0~10 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=e3364564e3f63cd337a5aafaadb483ba528ea4d2;hp=dac841636d7872b5f1028909a226b2d32b671a05;p=releng%2Fglobal-jjb.git Merge "INFO validate job improvements" --- diff --git a/releasenotes/notes/info-validate-yamllint-22c539ac9bd878e0.yaml b/releasenotes/notes/info-validate-yamllint-22c539ac9bd878e0.yaml new file mode 100644 index 00000000..7e8f6e0d --- /dev/null +++ b/releasenotes/notes/info-validate-yamllint-22c539ac9bd878e0.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + INFO validate job checks that repositories matches $PROJECT + Catches projects that replace / with - in their INFO file + Also ensures that repositories only has one entry. + We are not supporting multiple projects with a single INFO.yaml file. diff --git a/shell/info-file-validate.sh b/shell/info-file-validate.sh index f0c47cbb..4b80672b 100755 --- a/shell/info-file-validate.sh +++ b/shell/info-file-validate.sh @@ -10,12 +10,12 @@ ############################################################################## echo '--> info-file-validate.sh' set -e -o pipefail -set -x # Enable trace +PROJECT="${PROJECT:-None}" virtualenv --quiet "/tmp/v/info" # shellcheck source=/tmp/v/info/bin/activate disable=SC1091 source "/tmp/v/info/bin/activate" -pip install PyYAML jsonschema rfc3987 yamllint +pip install PyYAML jsonschema rfc3987 yamllint yq # Download info-schema.yaml and yaml-verfy-schema.py wget -q https://raw.githubusercontent.com/lfit/releng-global-jjb/master/schema/info-schema.yaml \ @@ -26,3 +26,18 @@ yamllint INFO.yaml python yaml-verify-schema.py \ -s info-schema.yaml \ -y INFO.yaml + + +# Verfiy that there is only one repository and that it matches $PROJECT +REPO_LIST="$(yq -r '.repositories[]' INFO.yaml)" + +while IFS= read -r project; do + if [[ "$project" == "$PROJECT" ]]; then + echo "$project is valid" + else + echo "ERROR: $project is invalid" + echo "INFO.yaml file may only list one repository" + echo "Repository must match $PROJECT" + exit 1 + fi +done <<< "$REPO_LIST"