Merge "Fix NSH_SFC linting"
[ci-management.git] / jjb / vpp / include-raw-vpp-csit-functional.sh
index e0767c6..804ed62 100644 (file)
@@ -1,11 +1,90 @@
 #!/bin/bash
 set -xeu -o pipefail
 
-# Clone csit and start tests
-git clone https://gerrit.fd.io/r/csit
+# Get CSIT branch from which to test from
+# running build-root/scripts/csit-test-branch
+if [ -x build-root/scripts/csit-test-branch ]; then
+    CSIT_BRANCH=`build-root/scripts/csit-test-branch`;
+fi
+
+# check CSIT_BRANCH value
+if [ "$CSIT_BRANCH" == "" ]; then
+    echo "CSIT_BRANCH not provided => 'latest' will be used"
+    CSIT_BRANCH="latest"
+fi
+
+# clone csit
+git clone --depth 1 --no-single-branch https://gerrit.fd.io/r/csit
+
+# if the git clone fails, complain clearly and exit
+if [ $? != 0 ]; then
+    echo "Failed to run: git clone --depth 1 --no-single-branch https://gerrit.fd.io/r/csit"
+    exit 1
+fi
 
 cp build-root/*.deb csit/
-cd csit
+if [ -e dpdk/vpp-dpdk-dkms*.deb ]
+then
+    cp dpdk/vpp-dpdk-dkms*.deb csit/
+else
+    cp /w/dpdk/vpp-dpdk-dkms*.deb csit/
+fi
+
+# Check for CSIT_REF test file
+if [ -e CSIT_REF ]; then
+    source CSIT_REF
+fi
+
+# If also testing a specific csit refpoint look for CSIT_REF
+if [[ -v CSIT_REF ]]; then
+    (cd csit ; git fetch ssh://rotterdam-jobbuilder@gerrit.fd.io:29418/csit $CSIT_REF && git checkout FETCH_HEAD)
+else
+    cd csit
+    if [ "$CSIT_BRANCH" == "latest" ]; then
+        # set required CSIT branch_id based on VPP master branch; by default use 'oper'
+        case "$VPP_BRANCH" in
+            master )
+                BRANCH_ID="oper"
+                ;;
+            stable/1710 )
+                BRANCH_ID="oper-rls1710"
+                ;;
+            stable/1801 )
+                BRANCH_ID="oper-rls1801"
+                ;;
+            stable/1804 )
+                BRANCH_ID="oper-rls1804"
+                ;;
+            stable/1807 )
+                BRANCH_ID="oper-rls1807"
+                ;;
+            stable/1810 )
+                BRANCH_ID="oper-rls1810"
+                ;;
+            * )
+                BRANCH_ID="oper"
+        esac
+
+        # get the latest verified version of the required branch
+        CSIT_BRANCH=$(echo $(git branch -r | grep -E "${BRANCH_ID}-[0-9]+" | tail -n 1))
+
+        if [ "${CSIT_BRANCH}" == "" ]; then
+            echo "No verified CSIT branch found - exiting"
+            exit 1
+        fi
+
+        # remove 'origin/' from the branch name
+        CSIT_BRANCH=$(echo ${CSIT_BRANCH#origin/})
+    fi
+    # checkout the required csit branch
+    git checkout ${CSIT_BRANCH}
+
+    if [ $? != 0 ]; then
+        echo "Failed to checkout the required CSIT branch: ${CSIT_BRANCH}"
+        exit 1
+    fi
+fi
+
 # execute csit bootstrap script if it exists
 if [ -e bootstrap.sh ]
 then