summaryrefslogtreecommitdiffstats
path: root/jjb/scripts
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2020-01-07 18:01:18 +0100
committerVratko Polak <vrpolak@cisco.com>2020-01-09 10:35:07 +0100
commitc16cf4ec132c21090342324878ca22ad1fc0476e (patch)
tree3a9383c592bd4b151740a0f6261ac34291a21516 /jjb/scripts
parent6e1c00a92c2f447c77a77a1ed16aee74add7d3d4 (diff)
VPP: Make script inclusion more readable
Historically, scripts names started with include-raw-vpp- prefix. That was not only long and superfluous, but also confusing, as the actual way of including uses "include-raw-escape", which is a command behaving differently than "include-raw", suggested by the previous name. This Change shortens script names to the part that actually says something about the script. + Delete include-gcc8-prefer.sh as it is orphaned since https://gerrit.fd.io/r/c/ci-management/+/20443 + Move the scripts to jjb/scripts/vpp/. - "absolute" paths are not used, as ci-man root is not in search path. + Put each path on a separate line to avoid long lines. + Put each include in a separate shell to make sure return code of each script is checked. + Update copyright year where present. - Copyright notices are not added when not present. Change-Id: I48920542ff20810cc87fb01844236350348bae59 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'jjb/scripts')
-rw-r--r--jjb/scripts/vpp/arm-build-no-test.sh58
-rw-r--r--jjb/scripts/vpp/arm-build.sh66
-rw-r--r--jjb/scripts/vpp/build.sh64
-rw-r--r--jjb/scripts/vpp/check_crc.sh38
-rw-r--r--jjb/scripts/vpp/checkstyle.sh9
-rw-r--r--jjb/scripts/vpp/clang-build.sh40
-rw-r--r--jjb/scripts/vpp/commitmsg.sh8
-rw-r--r--jjb/scripts/vpp/coverity.sh32
-rw-r--r--jjb/scripts/vpp/csit-device.sh38
-rw-r--r--jjb/scripts/vpp/csit-perf.sh38
-rw-r--r--jjb/scripts/vpp/docs.sh50
-rw-r--r--jjb/scripts/vpp/make-test-docs.sh49
-rw-r--r--jjb/scripts/vpp/maven-push.sh56
-rw-r--r--jjb/scripts/vpp/parallel-vars.sh11
-rw-r--r--jjb/scripts/vpp/sphinx-docs.sh50
-rw-r--r--jjb/scripts/vpp/test-checkstyle.sh9
16 files changed, 616 insertions, 0 deletions
diff --git a/jjb/scripts/vpp/arm-build-no-test.sh b/jjb/scripts/vpp/arm-build-no-test.sh
new file mode 100644
index 000000000..94cc82449
--- /dev/null
+++ b/jjb/scripts/vpp/arm-build-no-test.sh
@@ -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 "*******************************************************************"
diff --git a/jjb/scripts/vpp/arm-build.sh b/jjb/scripts/vpp/arm-build.sh
new file mode 100644
index 000000000..9de736ae0
--- /dev/null
+++ b/jjb/scripts/vpp/arm-build.sh
@@ -0,0 +1,66 @@
+#!/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}"
+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\""
+ [ "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
+ 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 "*******************************************************************"
diff --git a/jjb/scripts/vpp/build.sh b/jjb/scripts/vpp/build.sh
new file mode 100644
index 000000000..6fdaec133
--- /dev/null
+++ b/jjb/scripts/vpp/build.sh
@@ -0,0 +1,64 @@
+#!/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}"
+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 make pkg-verify.
+if (git log --oneline | grep 37682e1 > /dev/null 2>&1) && \
+ [ "x${IS_CSIT_VPP_JOB}" != "xTrue" ]
+then
+ echo "Building using \"make verify\""
+ [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes TEST_JOBS=auto verify
+else
+ echo "Building using \"make pkg-verify\""
+ [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes pkg-verify
+fi
+
+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 BUILD SUCCESSFULLY COMPLETED"
+echo "*******************************************************************"
diff --git a/jjb/scripts/vpp/check_crc.sh b/jjb/scripts/vpp/check_crc.sh
new file mode 100644
index 000000000..04e53966d
--- /dev/null
+++ b/jjb/scripts/vpp/check_crc.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exuo pipefail
+
+# Clone CSIT git repository and proceed with entry script located there.
+#
+# Variables read:
+# - WORKSPACE - Jenkins workspace to create csit subdirectory in.
+# - CSIT_REF - Override ref of CSIT git repository to checkout.
+# Directories updated:
+# - ${WORKSPACE}/csit - Created, holding a checked out CSIT repository.
+# - Multiple other side effects by entry script(s), see CSIT repository.
+
+cd "${WORKSPACE}"
+git clone https://gerrit.fd.io/r/csit --depth=1 --no-single-branch --no-checkout
+pushd "${WORKSPACE}/csit"
+if [[ -n "${CSIT_REF-}" ]]; then
+ git fetch --depth=1 https://gerrit.fd.io/r/csit "${CSIT_REF}"
+ git checkout FETCH_HEAD
+else
+ git checkout HEAD
+fi
+popd
+csit_entry_dir="${WORKSPACE}/csit/resources/libraries/bash/entry"
+source "${csit_entry_dir}/with_oper_for_vpp.sh" "check_crc.sh"
diff --git a/jjb/scripts/vpp/checkstyle.sh b/jjb/scripts/vpp/checkstyle.sh
new file mode 100644
index 000000000..7c520dd99
--- /dev/null
+++ b/jjb/scripts/vpp/checkstyle.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+# jjb/vpp/include-raw-vpp-checkstyle.sh
+
+if [ -n "$(grep -E '^checkstyle:' Makefile)" ]
+then
+ make checkstyle
+else
+ echo "Can't find checkstyle target in Makefile - skipping checkstyle"
+fi
diff --git a/jjb/scripts/vpp/clang-build.sh b/jjb/scripts/vpp/clang-build.sh
new file mode 100644
index 000000000..b1bed417b
--- /dev/null
+++ b/jjb/scripts/vpp/clang-build.sh
@@ -0,0 +1,40 @@
+#!/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
+
+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
+
+make UNATTENDED=yes install-dep
+make UNATTENDED=yes install-ext-deps
+make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp_clang CC=clang CXX=clang install-packages
+make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp_clang CC=clang CXX=clang sample-plugin-install
+make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp_clang CC=clang CXX=clang libmemif-install
+
+
+echo "*******************************************************************"
+echo "* VPP CLANG BUILD SUCCESSFULLY COMPLETED"
+echo "*******************************************************************"
diff --git a/jjb/scripts/vpp/commitmsg.sh b/jjb/scripts/vpp/commitmsg.sh
new file mode 100644
index 000000000..d926ff5dd
--- /dev/null
+++ b/jjb/scripts/vpp/commitmsg.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if [ -f extras/scripts/check_commit_msg.sh ];then
+ echo "Running extras/scripts/check_commit_msg.sh"
+ extras/scripts/check_commit_msg.sh
+else
+ echo "Cannot find cat extras/scripts/check_commit_msg.sh - skipping commit message check"
+fi
diff --git a/jjb/scripts/vpp/coverity.sh b/jjb/scripts/vpp/coverity.sh
new file mode 100644
index 000000000..47a316a89
--- /dev/null
+++ b/jjb/scripts/vpp/coverity.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+FILE="scan.txt"
+OUTPUT="output.txt"
+
+wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
+dpkg -i google-chrome-stable_current_amd64.deb || true
+apt-get install -f -y
+
+google-chrome --headless --disable-gpu -dump-dom --no-sandbox https://scan.coverity.com/projects/fd-io-vpp > $FILE
+
+grep -i '<dt>Newly detected</dt>' $FILE || exit 42
+
+NEW=$(grep -i -B 1 '<dt>Newly detected</dt>' $FILE | grep -Eo '[0-9]{1,4}')
+ELIM=$(grep -i -B 1 '<dt>Eliminated</dt>' $FILE | grep -Eo '[0-9]{1,4}')
+OUT=$(grep -i -B 1 '<dt>Outstanding</dt>' $FILE | grep -Eo '[0-9]{1,4}')
+
+#ls -lg $FILE
+#cat $FILE
+
+if [ "${OUT}" == "0" ]; then
+ echo 'Current outstanding issues are zero' > $OUTPUT
+ echo "Newly detected: $NEW" >> $OUTPUT
+ echo "Eliminated: $ELIM" >> $OUTPUT
+ echo "More details can be found at https://scan.coverity.com/projects/fd-io-vpp/view_defects" >> $OUTPUT
+else
+ echo "Current number of outstanding issues are $OUT Failing job"
+ echo "Current number of outstanding issues are $OUT" > $OUTPUT
+ echo "Newly detected: $NEW" >> $OUTPUT
+ echo "Eliminated: $ELIM" >> $OUTPUT
+ echo "More details can be found at https://scan.coverity.com/projects/fd-io-vpp/view_defects" >> $OUTPUT
+ exit 1
+fi
diff --git a/jjb/scripts/vpp/csit-device.sh b/jjb/scripts/vpp/csit-device.sh
new file mode 100644
index 000000000..af54c9dc4
--- /dev/null
+++ b/jjb/scripts/vpp/csit-device.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exuo pipefail
+
+# Clone CSIT git repository and proceed with entry script located there.
+#
+# Variables read:
+# - WORKSPACE - Jenkins workspace to create csit subdirectory in.
+# - CSIT_REF - Override ref of CSIT git repository to checkout.
+# Directories updated:
+# - ${WORKSPACE}/csit - Created, holding a checked out CSIT repository.
+# - Multiple other side effects by entry script(s), see CSIT repository.
+
+cd "${WORKSPACE}"
+git clone https://gerrit.fd.io/r/csit --depth=1 --no-single-branch --no-checkout
+pushd "${WORKSPACE}/csit"
+if [[ -n "${CSIT_REF-}" ]]; then
+ git fetch --depth=1 https://gerrit.fd.io/r/csit "${CSIT_REF}"
+ git checkout FETCH_HEAD
+else
+ git checkout HEAD
+fi
+popd
+csit_entry_dir="${WORKSPACE}/csit/resources/libraries/bash/entry"
+source "${csit_entry_dir}/with_oper_for_vpp.sh" "per_patch_device.sh"
diff --git a/jjb/scripts/vpp/csit-perf.sh b/jjb/scripts/vpp/csit-perf.sh
new file mode 100644
index 000000000..17a9d39bc
--- /dev/null
+++ b/jjb/scripts/vpp/csit-perf.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exuo pipefail
+
+# Clone CSIT git repository and proceed with entry script located there.
+#
+# Variables read:
+# - WORKSPACE - Jenkins workspace to create csit subdirectory in.
+# - CSIT_REF - Override ref of CSIT git repository to checkout.
+# Directories updated:
+# - ${WORKSPACE}/csit - Created, holding a checked out CSIT repository.
+# - Multiple other side effects by entry script(s), see CSIT repository.
+
+cd "${WORKSPACE}"
+git clone https://gerrit.fd.io/r/csit --depth=1 --no-single-branch --no-checkout
+pushd "${WORKSPACE}/csit"
+if [[ -n "${CSIT_REF-}" ]]; then
+ git fetch --depth=1 https://gerrit.fd.io/r/csit "${CSIT_REF}"
+ git checkout FETCH_HEAD
+else
+ git checkout HEAD
+fi
+popd
+csit_entry_dir="${WORKSPACE}/csit/resources/libraries/bash/entry"
+source "${csit_entry_dir}/with_oper_for_vpp.sh" "per_patch_perf.sh"
diff --git a/jjb/scripts/vpp/docs.sh b/jjb/scripts/vpp/docs.sh
new file mode 100644
index 000000000..608f8f979
--- /dev/null
+++ b/jjb/scripts/vpp/docs.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+set -xe -o pipefail
+[ "$DOCS_REPO_URL" ] || DOCS_REPO_URL="https://nexus.fd.io/content/sites/site"
+[ "$PROJECT_PATH" ] || PROJECT_PATH=io/fd/vpp
+[ "$DOC_FILE" ] || DOC_FILE=vpp.docs.zip
+[ "$DOC_DIR" ] || DOC_DIR=build-root/docs/html
+[ "$SITE_DIR" ] || SITE_DIR=build-root/docs/deploy-site/
+[ "$RESOURCES_DIR" ] || RESOURCES_DIR=${SITE_DIR}/src/site/resources
+[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn"
+[ "$VERSION" ] || VERSION=$(./build-root/scripts/version rpm-version)
+
+make doxygen
+
+if [[ ${JOB_NAME} == *merge* ]]; then
+ mkdir -p $(dirname ${RESOURCES_DIR})
+ mv -f ${DOC_DIR} ${RESOURCES_DIR}
+ cd ${SITE_DIR}
+ find . -type f '(' -name '*.md5' -o -name '*.dot' -o -name '*.map' ')' -delete
+ cat > pom.xml << EOF
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>io.fd.vpp</groupId>
+ <artifactId>docs</artifactId>
+ <version>1.0.0</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <generateReports>false</generateReports>
+ </properties>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
+ <version>2.10</version>
+ </extension>
+ </extensions>
+ </build>
+ <distributionManagement>
+ <site>
+ <id>fdio-site</id>
+ <url>dav:${DOCS_REPO_URL}/${PROJECT_PATH}/${VERSION}</url>
+ </site>
+ </distributionManagement>
+ </project>
+EOF
+ ${MVN} -B site:site site:deploy -gs "${GLOBAL_SETTINGS_FILE}" -s "${SETTINGS_FILE}" -T 4C
+ cd -
+fi
diff --git a/jjb/scripts/vpp/make-test-docs.sh b/jjb/scripts/vpp/make-test-docs.sh
new file mode 100644
index 000000000..1f82ab502
--- /dev/null
+++ b/jjb/scripts/vpp/make-test-docs.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+set -xe -o pipefail
+[ "$DOCS_REPO_URL" ] || DOCS_REPO_URL="https://nexus.fd.io/content/sites/site"
+[ "$PROJECT_PATH" ] || PROJECT_PATH=io/fd/vpp
+[ "$DOC_DIR" ] || DOC_DIR=build-root/build-test/doc/html
+[ "$SITE_DIR" ] || SITE_DIR=build-root/docs/deploy-site
+[ "$RESOURCES_DIR" ] || RESOURCES_DIR=${SITE_DIR}/src/site/resources/vpp_make_test
+[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn"
+[ "$VERSION" ] || VERSION=$(./build-root/scripts/version rpm-version)
+
+make test-doc
+
+if [[ ${JOB_NAME} == *merge* ]]; then
+ mkdir -p ${RESOURCES_DIR}
+ mv -f ${DOC_DIR} ${RESOURCES_DIR}
+ cd ${SITE_DIR}
+
+ cat > pom.xml << EOF
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>io.fd.vpp</groupId>
+ <artifactId>docs</artifactId>
+ <version>1.0.0</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <generateReports>false</generateReports>
+ </properties>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
+ <version>2.10</version>
+ </extension>
+ </extensions>
+ </build>
+ <distributionManagement>
+ <site>
+ <id>fdio-site</id>
+ <url>dav:${DOCS_REPO_URL}/${PROJECT_PATH}/${VERSION}</url>
+ </site>
+ </distributionManagement>
+ </project>
+EOF
+ ${MVN} -B site:site site:deploy -gs "${GLOBAL_SETTINGS_FILE}" -s "${SETTINGS_FILE}" -T 4C
+ cd -
+fi
diff --git a/jjb/scripts/vpp/maven-push.sh b/jjb/scripts/vpp/maven-push.sh
new file mode 100644
index 000000000..6ce3b2c06
--- /dev/null
+++ b/jjb/scripts/vpp/maven-push.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+set -xe -o pipefail
+echo "*******************************************************************"
+echo "* STARTING PUSH OF PACKAGES TO REPOS"
+echo "* NOTHING THAT HAPPENS BELOW THIS POINT IS RELATED TO BUILD FAILURE"
+echo "*******************************************************************"
+
+[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn"
+GROUP_ID="io.fd.${PROJECT}"
+BASEURL="${NEXUSPROXY}/content/repositories/fd.io."
+BASEREPOID='fdio-'
+
+if [ "${OS}" == "ubuntu1604" ]; then
+ # Find the files
+ JARS=$(find . -type f -iname '*.jar')
+ DEBS=$(find . -type f -iname '*.deb')
+ for i in $JARS
+ do
+ push_jar "$i"
+ done
+
+ for i in $DEBS
+ do
+ push_deb "$i"
+ done
+elif [ "${OS}" == "ubuntu1804" ]; then
+ # Find the files
+ JARS=$(find . -type f -iname '*.jar')
+ DEBS=$(find . -type f -iname '*.deb')
+ for i in $JARS
+ do
+ push_jar "$i"
+ done
+
+ for i in $DEBS
+ do
+ push_deb "$i"
+ done
+elif [ "${OS}" == "centos7" ]; then
+ # Find the files
+ RPMS=$(find . -type f -iname '*.rpm')
+ SRPMS=$(find . -type f -iname '*.srpm')
+ SRCRPMS=$(find . -type f -name '*.src.rpm')
+ for i in $RPMS $SRPMS $SRCRPMS
+ do
+ push_rpm "$i"
+ done
+elif [ "${OS}" == "opensuse" ]; then
+ # Find the files
+ RPMS=$(find . -type f -iname '*.rpm')
+ for i in $RPMS
+ do
+ push_rpm "$i"
+ done
+fi
+# vim: ts=4 sw=4 sts=4 et ft=sh :
diff --git a/jjb/scripts/vpp/parallel-vars.sh b/jjb/scripts/vpp/parallel-vars.sh
new file mode 100644
index 000000000..1a5de149f
--- /dev/null
+++ b/jjb/scripts/vpp/parallel-vars.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+CORES=4
+if [[ $(uname -m) == 'aarch64' ]]
+then
+ CORES=16
+fi
+
+echo "Using MAKE_PARALLEL_FLAGS='-j $CORES' TEST_JOBS=$CORES for parallel build/test"
+
+export MAKE_PARALLEL_FLAGS="-j $CORES"
+export TEST_JOBS=$CORES
diff --git a/jjb/scripts/vpp/sphinx-docs.sh b/jjb/scripts/vpp/sphinx-docs.sh
new file mode 100644
index 000000000..e5b8cfd15
--- /dev/null
+++ b/jjb/scripts/vpp/sphinx-docs.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+set -xe -o pipefail
+[ "$DOCS_REPO_URL" ] || DOCS_REPO_URL="https://nexus.fd.io/content/sites/site"
+[ "$PROJECT_PATH" ] || PROJECT_PATH=io/fd/vpp
+[ "$DOC_FILE" ] || DOC_FILE=vpp.docs.zip
+[ "$DOC_DIR" ] || DOC_DIR=./docs/_build/html
+[ "$SITE_DIR" ] || SITE_DIR=build-root/docs/deploy-site
+[ "$RESOURCES_DIR" ] || RESOURCES_DIR=${SITE_DIR}/src/site/resources
+[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn"
+[ "$VERSION" ] || VERSION=$(./build-root/scripts/version rpm-version)
+
+make docs-venv
+make docs
+
+if [[ ${JOB_NAME} == *merge* ]]; then
+ mkdir -p $(dirname ${RESOURCES_DIR})
+ mv -f ${DOC_DIR} ${RESOURCES_DIR}
+ cd ${SITE_DIR}
+ cat > pom.xml << EOF
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>io.fd.vpp</groupId>
+ <artifactId>docs</artifactId>
+ <version>1.0.0</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <generateReports>false</generateReports>
+ </properties>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
+ <version>2.10</version>
+ </extension>
+ </extensions>
+ </build>
+ <distributionManagement>
+ <site>
+ <id>fdio-site</id>
+ <url>dav:${DOCS_REPO_URL}/${PROJECT_PATH}/v${VERSION}</url>
+ </site>
+ </distributionManagement>
+ </project>
+EOF
+ ${MVN} -B site:site site:deploy -gs "${GLOBAL_SETTINGS_FILE}" -s "${SETTINGS_FILE}" -T 4C
+ cd -
+fi
diff --git a/jjb/scripts/vpp/test-checkstyle.sh b/jjb/scripts/vpp/test-checkstyle.sh
new file mode 100644
index 000000000..bdc843114
--- /dev/null
+++ b/jjb/scripts/vpp/test-checkstyle.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+# jjb/vpp/include-raw-vpp-test-checkstyle.sh
+
+if [ -n "$(grep -E '^test-checkstyle:' Makefile)" ]
+then
+ make test-checkstyle
+else
+ echo "Can't find test-checkstyle target in Makefile - skipping test-checkstyle"
+fi