Enable nonvoting testing in VPP ARM verify jobs 51/15251/7
authorjuraj.linkes <[email protected]>
Thu, 11 Oct 2018 15:09:29 +0000 (17:09 +0200)
committerJuraj Linkeš <[email protected]>
Tue, 11 Dec 2018 08:13:59 +0000 (08:13 +0000)
Enable testing utilizing parallel test execution for ARM jobs with
parallel test execution code, which has been merged in 1810 and update
the OS for these jobs to Ubuntu1804.

Create new jobs for branches without parallel test execution which don't
have testing enabled and retain the OS.

Also exclude some currently failing tests which will be enabled once
the underlying issues are fixed.

Change-Id: I5bbb1348a5a00676759753e5cf66ab65ce55e57d
Signed-off-by: juraj.linkes <[email protected]>
jjb/vpp/include-raw-vpp-arm-build-no-test.sh [new file with mode: 0644]
jjb/vpp/include-raw-vpp-arm-build.sh
jjb/vpp/include-raw-vpp-parallel-vars.sh
jjb/vpp/vpp.yaml

diff --git a/jjb/vpp/include-raw-vpp-arm-build-no-test.sh b/jjb/vpp/include-raw-vpp-arm-build-no-test.sh
new file mode 100644 (file)
index 0000000..94cc824
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/bash
+# basic build script example
+set -xe -o pipefail
+
+OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
+OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
+
+echo OS_ID: $OS_ID
+echo OS_VERSION_ID: $OS_VERSION_ID
+
+# do nothing but print the current slave hostname
+hostname
+export CCACHE_DIR=/tmp/ccache
+if [ -d $CCACHE_DIR ];then
+    echo $CCACHE_DIR exists
+    du -sk $CCACHE_DIR
+else
+    echo $CCACHE_DIR does not exist.  This must be a new slave.
+fi
+
+echo "cat /etc/bootstrap.sha"
+if [ -f /etc/bootstrap.sha ];then
+    cat /etc/bootstrap.sha
+else
+    echo "Cannot find cat /etc/bootstrap.sha"
+fi
+
+echo "cat /etc/bootstrap-functions.sha"
+if [ -f /etc/bootstrap-functions.sha ];then
+    cat /etc/bootstrap-functions.sha
+else
+    echo "Cannot find cat /etc/bootstrap-functions.sha"
+fi
+
+echo "sha1sum of this script: ${0}"
+sha1sum $0
+
+echo "CC=${CC}"
+
+make UNATTENDED=yes install-dep
+make UNATTENDED=yes dpdk-install-dev
+make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
+make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
+make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp libmemif-install
+make UNATTENDED=yes pkg-deb
+
+if [ "x${VPP_REPO}" == "x1" ]; then
+    if [ "x${REBASE_NEEDED}" == "x1" ]; then
+        echo "This patch to vpp is based on an old point in the tree that is likely"
+        echo "to fail verify."
+        echo "PLEASE REBASE PATCH ON THE CURRENT HEAD OF THE VPP REPO"
+        exit 1
+    fi
+fi
+
+echo "*******************************************************************"
+echo "* VPP ARM BUILD SUCCESSFULLY COMPLETED"
+echo "*******************************************************************"
index 94cc824..906e185 100644 (file)
@@ -36,13 +36,22 @@ echo "sha1sum of this script: ${0}"
 sha1sum $0
 
 echo "CC=${CC}"
-
-make UNATTENDED=yes install-dep
-make UNATTENDED=yes dpdk-install-dev
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp libmemif-install
-make UNATTENDED=yes pkg-deb
+echo "IS_CSIT_VPP_JOB=${IS_CSIT_VPP_JOB}"
+# If and only if we are doing verify *after* make verify was made to work
+# and we are not a CSIT job just building packages, then use make verify,
+# else use the old build-root/vagrant/build.sh
+if (git log --oneline | grep 37682e1 > /dev/null 2>&1) && \
+        [ "x${IS_CSIT_VPP_JOB}" != "xTrue" ]
+then
+    echo "Building using \"make verify\""
+    sed -i '33i\ \ DEPENDS api_headers' src/vat/CMakeLists.txt
+    [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes verify SKIP_AARCH64=yes
+else
+    echo "Building using \"make build-root/vagrant/build.sh\""
+    [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes install-dep
+    [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes dpdk-install-dev
+    [ "x${DRYRUN}" == "xTrue" ] || build-root/vagrant/build.sh
+fi
 
 if [ "x${VPP_REPO}" == "x1" ]; then
     if [ "x${REBASE_NEEDED}" == "x1" ]; then
index b4d5f20..0926452 100644 (file)
@@ -10,12 +10,12 @@ else
         # NODE_NAME is jenkins-SOMEHEX
         if [[ $NODE_NAME != $NODE_LABEL ]]
         then
-            # Found label such as ubuntu1604arm-us
+            # Found label such as ubuntu1804arm-us
             break
         fi
     done
 
-    if [[ $NODE_LABEL == 'ubuntu1604arm-us' ]]
+    if [[ $NODE_LABEL == 'ubuntu1804arm-us' ]]
     then
         CORES=16
     fi
@@ -24,4 +24,4 @@ fi
 echo "Using MAKE_PARALLEL_FLAGS='-j $CORES' TEST_JOBS=$CORES for parallel build/test"
 
 export MAKE_PARALLEL_FLAGS="-j $CORES"
-TEST_JOBS=$CORES
+export TEST_JOBS=$CORES
index 60c5fb5..d366e99 100644 (file)
       - master:
           branch: 'master'
           repo-stream-part: 'master'
+    os:
+      - ubuntu1804:
+          repo-os-part: 'ubuntu-arm.bionic.main'
+
+- project:
+    name: vpp-arm-old
+    jobs:
+      - 'vpp-arm-old-verify-{stream}-{os}'
+      - 'vpp-arm-merge-{stream}-{os}'
+    project: 'vpp'
+    stream:
       - '1804':
           branch: 'stable/1804'
           repo-stream-part: 'stable.1804'
           maven-version: 'mvn33-new'
 
 - job-template:
-    name: 'vpp-arm-verify-{stream}-{os}'
+    name: 'vpp-arm-old-verify-{stream}-{os}'
 
     project-type: freestyle
     node: '{os}arm-us'
           name: '{project}'
           branch: '{branch}'
 
+    builders:
+      - shell:
+          !include-raw-escape: ../scripts/setup_vpp_ubuntu_arm_test.sh
+      - shell:
+          !include-raw-escape:
+          - ../scripts/setup_vpp_dpdk_dev_env.sh
+          - include-raw-vpp-arm-build-no-test.sh
+
+    publishers:
+      - archive:
+          artifacts: >
+            **/build-root/*.rpm,
+            **/build-root/*.deb,
+            **/dpdk/*.rpm,
+            **/dpdk/*.deb
+          allow-empty: 'true'
+          fingerprint: false
+          only-if-success: true
+          default-excludes: false
+      - fdio-infra-shiplogs:
+          maven-version: 'mvn33-new'
+          archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+
+- job-template:
+    name: 'vpp-arm-verify-{stream}-{os}'
+
+    project-type: freestyle
+    node: '{os}arm-us'
+    concurrent: true
+
+    build-discarder:
+      daysToKeep: '{build-days-to-keep}'
+      numToKeep: 100
+      artifactDaysToKeep: '{build-artifact-days-to-keep}'
+      artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+    parameters:
+      - project-parameter:
+          project: '{project}'
+      - gerrit-parameter:
+          branch: '{branch}'
+      - os-parameter:
+          os: '{os}'
+      - repo-name-parameter:
+          repo-name: '{repo-stream-part}.{repo-os-part}'
+      - stream-parameter:
+          stream: '{stream}'
+
+    scm:
+      - gerrit-trigger-scm:
+          credentials-id: 'jenkins-gerrit-credentials'
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+
+    wrappers:
+      - fdio-infra-wrappers:
+          build-timeout: 120
+
+    triggers:
+      - gerrit-trigger-checkstyle-nonvoting:
+          name: '{project}'
+          branch: '{branch}'
+
     builders:
       - shell:
           !include-raw-escape: ../scripts/setup_vpp_ubuntu_arm_test.sh