Chore: Upgrade Jenkins-job-builder to 6.3.0
[releng/global-jjb.git] / shell / info-file-validate.sh
index c3731f4..40d96b6 100755 (executable)
 ##############################################################################
 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
+# shellcheck disable=SC1090
+source ~/lf-env.sh
+lf-activate-venv zipp==1.1.0 PyYAML jsonschema rfc3987 yamllint yq
+pip freeze
 
-# Cloning global-jjb to get access to needed scripts
-git clone https://github.com/lfit/releng-global-jjb.git
+# Download info-schema.yaml and yaml-verfy-schema.py
+wget -q https://raw.githubusercontent.com/lfit/releng-global-jjb/master/schema/info-schema.yaml \
+https://raw.githubusercontent.com/lfit/releng-global-jjb/master/yaml-verify-schema.py
 
-python releng-global-jjb/yaml-verify-schema.py \
-    -s releng-global-jjb/info-schema \
+yamllint INFO.yaml
+
+python yaml-verify-schema.py \
+    -s info-schema.yaml \
     -y INFO.yaml
 
-rm -rf releng-global-jjb
+
+# 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"