Feat!: Upgrade Jenkins-job-builder to 6x
[ci-management.git] / extras / bash / sandbox_test_functions.sh
index afccf9a..ae37d3a 100644 (file)
 #         $WS_ROOT/jenkins.ini
 #   2. Clone ci-management workspace from gerrit.fd.io
 #   3. export WS_ROOT=<local ci-management workspace>
+#   4. cd $WS_ROOT
+#   5. git submodule update --init --recursive
+
 jjb-sandbox-env()
 {
-    local jjb_version=${JJB_VERSION:-"3.5.0"}
+    local jjb_version=${JJB_VERSION:-"6.0.0"}
 
     if [ -z "$WS_ROOT" ] ; then
         echo "ERROR: WS_ROOT is not set!"
@@ -69,6 +72,7 @@ jjb-sandbox-env()
     rm -rf $VENV_DIR \
        && python3 -m venv $VENV_DIR \
        && source $VENV_DIR/bin/activate \
+       && pip3 install --upgrade pip \
        && pip3 install wheel \
        && pip3 install jenkins-job-builder==$jjb_version
 
@@ -78,25 +82,42 @@ jjb-sandbox-env()
             echo "jenkins-jobs not found!  Run jjb-sandbox-env to activate."
             return
         fi
+        local grep_job_names=""
+        if [ "$1" = "-n" ] ; then
+            grep_job_names="true"
+            shift
+        fi
         if [ -z "$1" ] ; then
             echo "Usage: $FUNCNAME <jenkins-job-name>"
             return
         fi
-        which jenkins-jobs \
-            && jenkins-jobs --conf $JENKINS_INI test $WS_ROOT/jjb $@
+        if [ -z "$grep_job_names" ]; then
+            jenkins-jobs --conf $JENKINS_INI test $WS_ROOT/jjb $@
+        else
+            jenkins-jobs --conf $JENKINS_INI test $WS_ROOT/jjb $@ 2>&1 | grep -e'Number of jobs' -e'Job name' | sed -e 's/INFO:jenkins_jobs.builder://g'
+        fi
     }
     function jjsb-update() {
         if [ -z "$(which jenkins-jobs 2>&1)" ] ; then
             echo "jenkins-jobs not found!  Run jjb-sandbox-env to activate."
             return
         fi
+        local grep_num_jobs=""
+        if [ "$1" = "-n" ] ; then
+            grep_num_jobs="true"
+            shift
+        fi
         if [ -z "$1" ] ; then
             echo "Usage: $FUNCNAME <jenkins-job-name>"
             return
         fi
-        which jenkins-jobs \
-            && jenkins-jobs --conf $JENKINS_INI update $WS_ROOT/jjb $@
+        if [ -z "grep_num_jobs" ] ; then
+            jenkins-jobs --conf $JENKINS_INI update $WS_ROOT/jjb $@
+        else
+            jenkins-jobs --conf $JENKINS_INI update $WS_ROOT/jjb $@ 2>&1 | grep -e'Number of jobs'
+        fi
     }
+
     jenkins-jobs --version
 }
 
@@ -111,7 +132,8 @@ get_gerrit_refspec() {
     local query="$(ssh -p 29418 gerrit.fd.io gerrit query status:merged project:$project branch:$branch limit:1 --format=JSON --current-patch-set | tr ',' '\n' | grep refs | cut -d'"' -f4)"
 
     if [ -z "$query" ] ; then
-        echo "ERROR: Invalid project ($1) or branch ($2)"
+        echo "ERROR: Invalid argument(s): branch ($1) project ($2)"
+        echo "Usage: $0 <branch> <project>"
     else
         echo "$query"
     fi