Chore: Upgrade Jenkins-job-builder to 6.3.0
[releng/global-jjb.git] / shell / jjb-verify-job.sh
index 5bee095..abfda1c 100644 (file)
 ##############################################################################
 echo "---> jjb-verify-job.sh"
 
-# Ensure we fail the job if any steps fail.
-set -eu -o pipefail
+set -eufo pipefail
 
-jenkins-jobs -l DEBUG test --recursive -o archives/job-configs jjb/
+# shellcheck disable=SC1090
+source ~/lf-env.sh
 
-# Sort job output into sub-directories. On large Jenkins systems that have
-# many jobs archiving so many files into the same directory makes NGINX return
-# the directory list slow.
-pushd archives/job-configs
-for letter in {a..z}
-do
-    if [[ $(ls "$letter"* > /dev/null 2>&1) -eq 0 ]]
-    then
-        mkdir "$letter"
-        find . -maxdepth 1 -type f -name "$letter*" -exec mv {} "$letter" \;
-    fi
-done
-popd
+lf-git-validate-jira-urls
+lf-jjb-check-ascii
 
-if [ -n "$(ls -A archives/job-configs)" ]; then
-    tar cJvf archives/job-configs.tar.xz archives/job-configs
-    rm -rf archives/job-configs
-fi
+lf-activate-venv --python python3 --venv-file /tmp/.jjb_venv \
+    jenkins-job-builder setuptools==65.7.0
+
+jenkins-jobs test --recursive -o archives/job-configs --config-xml jjb/
+
+# Enable 'globbing'
+set +f
+# NGINX is very sluggish with directories containing large numbers of objects
+# Add another directory level named {a..z} and move directories to them.
+# Directories beginning with {0..9} or {A..Z} are left at the top level.
+(   cd archives/job-configs
+    for letter in {a..z}; do
+        if ls -d "$letter"* > /dev/null 2>&1; then
+            mkdir .tmp
+            mv "$letter"* .tmp
+            mv .tmp "$letter"
+        fi
+    done
+)
+
+(   cd archives
+    echo "INFO: Archiving $(find job-configs -name \*.xml | wc -l) job configurations"
+    tar -cJf job-configs.tar.xz job-configs
+    rm -rf job-configs
+)