aboutsummaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/libraries/bash/function/artifacts.sh155
-rw-r--r--resources/libraries/bash/function/gather.sh26
-rwxr-xr-xresources/tools/scripts/download_install_vpp_pkgs.sh179
3 files changed, 164 insertions, 196 deletions
diff --git a/resources/libraries/bash/function/artifacts.sh b/resources/libraries/bash/function/artifacts.sh
new file mode 100644
index 0000000000..945bdfe824
--- /dev/null
+++ b/resources/libraries/bash/function/artifacts.sh
@@ -0,0 +1,155 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2018 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
+
+function download_artifacts () {
+ # Get and/or install VPP artifacts from packagecloud.io.
+ #
+ # Variables set:
+ # - REPO_URL - FD.io Packagecloud repository.
+
+ set -exuo pipefail
+
+ os_id=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g') || {
+ die "Get OS release failed."
+ }
+
+ repo_url_path="./VPP_REPO_URL"
+ if [ -e "${repo_url_path}" ]; then
+ REPO_URL="$(<${repo_url_path})" || {
+ die "Read repo URL from ${repo_url_path} failed."
+ }
+ else
+ REPO_URL="https://packagecloud.io/install/repositories/fdio/master"
+ fi
+
+ if [ "${os_id}" == "ubuntu" ]; then
+ download_ubuntu_artifacts || die
+ elif [ "${os_id}" == "centos" ]; then
+ download_centos_artifacts || die
+ elif [ "${os_id}" == "opensuse" ]; then
+ download_opensuse_artifacts || die
+ else
+ die "${os_id} is not yet supported."
+ fi
+}
+
+function download_ubuntu_artifacts () {
+ # Get and/or install Ubuntu VPP artifacts from packagecloud.io.
+ #
+ # Variables read:
+ # - REPO_URL - FD.io Packagecloud repository.
+ # - VPP_VERSION - VPP version.
+ # - DKMS_VERSION - DKMS version.
+ # - INSTALL - If install packages or download only. Default: download
+
+ set -exuo pipefail
+
+ curl -s "${REPO_URL}"/script.deb.sh | sudo bash || {
+ die "Packagecloud FD.io repo fetch failed."
+ }
+ # If version is set we will add suffix.
+ artifacts=()
+ vpp=(vpp vpp-dbg vpp-dev vpp-lib vpp-plugins)
+ if [ -z "${VPP_VERSION-}" ]; then
+ artifacts+=(${vpp[@]})
+ else
+ artifacts+=(${vpp[@]/%/=${VPP_VERSION-}})
+ fi
+ dkms=(vpp-dpdk-dkms)
+ if [ -z "${DKMS_VERSION-}" ]; then
+ artifacts+=(${dkms[@]})
+ else
+ artifacts+=(${dkms[@]/%/=${DKMS_VERSION-}})
+ fi
+
+ if [ "${INSTALL:-false}" = true ]; then
+ sudo apt-get -y install "${artifacts[@]}" || {
+ die "Install VPP artifacts failed."
+ }
+ else
+ apt-get -y download "${artifacts[@]}" || {
+ die "Download VPP artifacts failed."
+ }
+ fi
+}
+
+function download_centos_artifacts () {
+ # Get and/or install CentOS VPP artifacts from packagecloud.io.
+ #
+ # Variables read:
+ # - REPO_URL - FD.io Packagecloud repository.
+ # - VPP_VERSION - VPP version.
+ # - INSTALL - If install packages or download only. Default: download
+
+ set -exuo pipefail
+
+ curl -s "${REPO_URL}"/script.rpm.sh | sudo bash || {
+ die "Packagecloud FD.io repo fetch failed."
+ }
+ # If version is set we will add suffix.
+ artifacts=()
+ vpp=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins)
+ if [ -z "${VPP_VERSION-}" ]; then
+ artifacts+=(${vpp[@]})
+ else
+ artifacts+=(${vpp[@]/%/-${VPP_VERSION-}})
+ fi
+
+ if [ "${INSTALL:-false}" = true ]; then
+ sudo yum -y install "${artifacts[@]}" || {
+ die "Install VPP artifact failed."
+ }
+ else
+ sudo yum -y install --downloadonly --downloaddir=. "${artifacts[@]}" || {
+ die "Download VPP artifacts failed."
+ }
+ fi
+}
+
+function download_opensuse_artifacts () {
+ # Get and/or install OpenSuSE VPP artifacts from packagecloud.io.
+ #
+ # Variables read:
+ # - REPO_URL - FD.io Packagecloud repository.
+ # - VPP_VERSION - VPP version.
+ # - INSTALL - If install packages or download only. Default: download
+
+ set -exuo pipefail
+
+ curl -s "${REPO_URL}"/script.rpm.sh | sudo bash || {
+ die "Packagecloud FD.io repo fetch failed."
+ }
+ # If version is set we will add suffix.
+ artifacts=()
+ vpp=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
+ if [ -z "${VPP_VERSION-}" ]; then
+ artifacts+=(${vpp[@]})
+ else
+ artifacts+=(${vpp[@]/%/-${VPP_VERSION-}})
+ fi
+
+ if [ "${INSTALL:-false}" = true ]; then
+ sudo yum -y install "${artifacts[@]}" || {
+ die "Install VPP artifact failed."
+ }
+ else
+ sudo yum -y install --downloadonly --downloaddir=. "${artifacts[@]}" || {
+ die "Download VPP artifacts failed."
+ }
+ fi
+}
+
diff --git a/resources/libraries/bash/function/gather.sh b/resources/libraries/bash/function/gather.sh
index f490c80110..e030652494 100644
--- a/resources/libraries/bash/function/gather.sh
+++ b/resources/libraries/bash/function/gather.sh
@@ -246,6 +246,7 @@ function gather_vpp () {
set -exuo pipefail
# Variables read:
+ # - BASH_FUNCTION_DIR - Bash directory with functions.
# - TEST_CODE - The test selection string from environment or argument.
# - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
# - CSIT_DIR - Path to existing root of local CSIT git repository.
@@ -267,32 +268,23 @@ function gather_vpp () {
case "${TEST_CODE}" in
# Not csit-vpp as this code is re-used by ligato gathering.
"csit-"*)
- install_script="${CSIT_DIR}/resources/tools/scripts/"
- install_script+="download_install_vpp_pkgs.sh"
# Use downloaded packages with specific version
if [[ "${TEST_CODE}" == *"daily"* ]] || \
[[ "${TEST_CODE}" == *"weekly"* ]] || \
[[ "${TEST_CODE}" == *"timed"* ]];
then
- echo "Downloading latest VPP packages from NEXUS..."
- # TODO: Can we source?
- bash "${install_script}" --skip-install || {
- die "Failed to get VPP packages!"
- }
+ warn "Downloading latest VPP packages from Packagecloud."
else
- echo "Downloading VPP packages of specific version from NEXUS."
- dpdk_stable_ver="$(cat "${CSIT_DIR}/DPDK_STABLE_VER")" || {
- die "Cat failed."
- }
- vpp_stable_ver="$(cat "${CSIT_DIR}/VPP_STABLE_VER_UBUNTU")" || {
- die "Cat failed."
+ warn "Downloading stable VPP packages from Packagecloud."
+ DKMS_VERSION="$(<"${CSIT_DIR}/DPDK_STABLE_VER")" || {
+ die "Read DPDK stable version failed."
}
- install_args=("--skip-install" "--vpp" "${vpp_stable_ver}")
- install_args+=("--dkms" "${dpdk_stable_ver}")
- bash "${install_script}" "${install_args[@]}" || {
- die "Failed to get VPP packages!"
+ VPP_VERSION="$(<"${CSIT_DIR}/VPP_STABLE_VER_UBUNTU")" || {
+ die "Read VPP stable version failed."
}
fi
+ source "${BASH_FUNCTION_DIR}/artifacts.sh" || die "Source failed."
+ download_artifacts || die
;;
"vpp-csit-"*)
# Use local built packages.
diff --git a/resources/tools/scripts/download_install_vpp_pkgs.sh b/resources/tools/scripts/download_install_vpp_pkgs.sh
deleted file mode 100755
index ce7530af83..0000000000
--- a/resources/tools/scripts/download_install_vpp_pkgs.sh
+++ /dev/null
@@ -1,179 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2018 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 -e -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')
-
-NEXUSPROXY="https://nexus.fd.io"
-
-function artifacts {
- if [ "$OS_ID" == "ubuntu" ]; then
- VPP_REPO_URL_PATH="./VPP_REPO_URL_UBUNTU"
- if [ -e "$VPP_REPO_URL_PATH" ]; then
- VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
- REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
- REPO_NAME=$(echo ${REPO_NAME%io/fd/vpp/})
- else
- OS_VERSION_CODENAME=$(grep '^VERSION_CODENAME=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
- REPO_NAME="fd.io.master.ubuntu.${OS_VERSION_CODENAME}.main"
- fi
- REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
-
- echo "deb ${REPO_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
- sudo apt-get -y update \
- -o Dir::Etc::sourcelist="sources.list.d/99fd.io.list" \
- -o Acquire::AllowInsecureRepositories=true \
- -o Dir::Etc::sourceparts="-" \
- -o APT::Get::AllowUnauthenticated=true \
- -o APT::Get::List-Cleanup="0"
-
- # If version is set we will add suffix
- VPP=(vpp vpp-dbg vpp-dev vpp-lib vpp-plugins)
- DKMS=(vpp-dpdk-dkms)
- if [ -z "${VPP_VERSION}" ]; then
- ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
- ARTIFACTS+=(${DKMS[@]/%/${DKMS_VERSION}})
- else
- ARTIFACTS+=(${VPP[@]/%/=${VPP_VERSION}})
- ARTIFACTS+=(${DKMS[@]/%/=${DKMS_VERSION}})
- fi
-
- if [ "$INSTALL" = true ]; then
- echo Installing VPP
- sudo apt-get -y install ${ARTIFACTS[@]} \
- -o Acquire::AllowInsecureRepositories=true \
- -o APT::Get::AllowUnauthenticated=true
- else
- echo Downloading VPP
- apt-get -y download ${ARTIFACTS[@]} \
- -o Acquire::AllowInsecureRepositories=true \
- -o APT::Get::AllowUnauthenticated=true
- fi
-
- elif [ "$OS_ID" == "centos" ]; then
- VPP_REPO_URL_PATH="./VPP_REPO_URL_CENTOS"
- if [ -e "$VPP_REPO_URL_PATH" ]; then
- VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
- REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
- REPO_NAME=$(echo ${REPO_NAME%/io/fd/vpp/})
- else
- REPO_NAME="fd.io.master.centos7"
- fi
- REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
-
- sudo cat << EOF > fdio-master.repo
-[fdio-master]
-name=fd.io master branch latest merge
-baseurl=${REPO_URL}
-enabled=1
-gpgcheck=0
-EOF
- sudo mv fdio-master.repo /etc/yum.repos.d/fdio-master.repo
-
- # If version is set we will add suffix
- VPP=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins)
- if [ -z "${VPP_VERSION}" ]; then
- ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
- else
- ARTIFACTS+=(${VPP[@]/%/-${VPP_VERSION}})
- fi
-
- if [ "$INSTALL" = true ]; then
- echo Installing VPP
- sudo yum -y install ${ARTIFACTS[@]}
- else
- echo Downloading VPP
- sudo yum -y install --downloadonly --downloaddir=. ${ARTIFACTS[@]}
- fi
- elif [ "$OS_ID" == "opensuse" ]; then
- VPP_REPO_URL_PATH="./VPP_REPO_URL_OPENSUSE"
- if [ -e "$VPP_REPO_URL_PATH" ]; then
- VPP_REPO_URL=$(cat $VPP_REPO_URL_PATH)
- REPO_NAME=$(echo ${VPP_REPO_URL#https://nexus.fd.io/content/repositories/})
- REPO_NAME=$(echo ${REPO_NAME%/io/fd/vpp/})
- else
- REPO_NAME='fd.io.master.opensuse'
- fi
- REPO_URL="${NEXUSPROXY}/content/repositories/${REPO_NAME}"
-
- sudo cat << EOF > fdio-master.repo
-[fdio-master]
-name=fd.io master branch latest merge
-baseurl=${REPO_URL}
-enabled=1
-gpgcheck=0
-EOF
- sudo mv fdio-master.repo /etc/yum/repos.d/fdio-master.repo
-
- # If version is set we will add suffix
- VPP=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
- if [ -z "${VPP_VERSION}" ]; then
- ARTIFACTS+=(${VPP[@]/%/${VPP_VERSION}})
- else
- ARTIFACTS+=(${VPP[@]/%/-${VPP_VERSION}})
- fi
-
- if [ "$INSTALL" = true ]; then
- echo Installing VPP
- sudo yum -y install ${ARTIFACTS[@]}
- else
- echo Downloading VPP
- sudo yum -y install --downloadonly --downloaddir=. ${ARTIFACTS[@]}
- fi
- else
- echo "$OS_ID is not yet supported."
- exit 1
- fi
-}
-
-function display_help () {
- echo "Usage: $0 [--skip-install] [--vpp <version>] [--dkms <version>]"
-}
-
-# Whether to install artifacts or not
-INSTALL=true
-# VPP version (default empty = latest)
-VPP_VERSION=""
-# DKMS version (default empty = latest)
-DKMS_VERSION=""
-
-while :
-do
- case "$1" in
- -h | --help)
- display_help
- exit 0
- ;;
- -s | --skip-install)
- INSTALL=false
- shift 1
- ;;
- -v | --vpp)
- VPP_VERSION="$2"
- shift 2
- ;;
- -d | --dkms)
- DKMS_VERSION="$2"
- shift 2
- ;;
- *)
- break
- ;;
- esac
-done
-
-artifacts "${INSTALL}" "${VPP_VERSION}" "${DKMS_VERSION}"