X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fgather.sh;h=1fc2d3e604512fc6308394cb4fee79a7d74cec98;hp=28a84ca10f8a11b92eb1e4d4db8af9fe31de6f35;hb=36d56bdb7f9f394047e2df3f29bf47db877b649c;hpb=e028b8a87c736b16f5eaf95a89ed434f98973195 diff --git a/resources/libraries/bash/function/gather.sh b/resources/libraries/bash/function/gather.sh index 28a84ca10f..1fc2d3e604 100644 --- a/resources/libraries/bash/function/gather.sh +++ b/resources/libraries/bash/function/gather.sh @@ -1,4 +1,5 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. +# Copyright (c) 2019 Cisco and/or its affiliates. +# Copyright (c) 2019 PANTHEON.tech 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: @@ -23,8 +24,6 @@ set -exuo pipefail function gather_build () { - set -exuo pipefail - # Variables read: # - TEST_CODE - String affecting test selection, usually jenkins job name. # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from. @@ -34,6 +33,7 @@ function gather_build () { # - ${DOWNLOAD_DIR} - Files needed by tests are gathered here. # Functions called: # - die - Print to stderr and exit, defined in common.sh + # - gather_os - Parse os parameter for OS/distro name. # - gather_dpdk, gather_vpp, gather_ligato - See their definitions. # Multiple other side effects are possible, # see functions called from here for their current description. @@ -41,6 +41,8 @@ function gather_build () { # TODO: Separate DUT-from-TEST_CODE from gather-for-DUT, # when the first one becomes relevant for per_patch. + set -exuo pipefail + pushd "${DOWNLOAD_DIR}" || die "Pushd failed." case "${TEST_CODE}" in *"hc2vpp"*) @@ -69,8 +71,6 @@ function gather_build () { function gather_dpdk () { - set -exuo pipefail - # Ensure latest DPDK archive is downloaded. # # Variables read: @@ -82,6 +82,8 @@ function gather_dpdk () { # Functions called: # - die - Print to stderr and exit, defined in common.sh + set -exuo pipefail + dpdk_repo="https://fast.dpdk.org/rel" # Use downloaded packages with specific version if [[ "${TEST_CODE}" == *"daily"* ]] || \ @@ -97,9 +99,12 @@ function gather_dpdk () { die "Composite piped command failed." } else - echo "Downloading DPDK packages of specific version from repo..." - # TODO: Can we autodetect this based on what CSIT-stable VPP uses? - dpdk_stable_ver="dpdk-19.02.tar.xz" + echo "Downloading DPDK package of specific version from repo ..." + # Downloading DPDK version based on what VPP is using. Currently + # it is not easy way to detect from VPP version automatically. + dpdk_stable_ver="$(< "${CSIT_DIR}/DPDK_VPP_VER")".tar.xz || { + die "Failed to read DPDK VPP version!" + } fi # TODO: Use "wget -N" instead checking for file presence? if [[ ! -f "${dpdk_stable_ver}" ]]; then @@ -112,8 +117,6 @@ function gather_dpdk () { function gather_ligato () { - set -exuo pipefail - # Build docker image (with vpp, ligato and vpp-agent), # and put it to ${DOWNLOAD_DIR}/. # @@ -150,6 +153,8 @@ function gather_ligato () { # so maybe it is not worth introducing fragments/functions for the blocks. # TODO: This fragment is too long anyway, split it up. + set -exuo pipefail + gather_vpp || die "The function should have died on error." mkdir -p /tmp/vpp && rm -f /tmp/vpp/* || { @@ -239,21 +244,21 @@ function gather_ligato () { 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. + # Variables set: + # - VPP_VERSION - VPP stable version under test. # Files read: # - ${CSIT_DIR}/DPDK_STABLE_VER - DPDK version to use # by csit-vpp not-timed jobs. - # - ${CSIT_DIR}/VPP_STABLE_VER_UBUNTU - VPP version to use by those. - # - ../vpp*.deb - Relative to ${DOWNLOAD_DIR}, copied for vpp-csit jobs. + # - ${CSIT_DIR}/VPP_STABLE_VER_UBUNTU - Ubuntu VPP version to usee. + # - ../vpp*.deb|rpm - Relative to ${DOWNLOAD_DIR}, copied for vpp-csit jobs. # Directories updated: # - ${DOWNLOAD_DIR}, vpp-*.deb files are copied here for vpp-csit jobs. - # - ./ - Assumed ${DOWNLOAD_DIR}, vpp-*.deb files + # - ./ - Assumed ${DOWNLOAD_DIR}, vpp-*.deb|rpm files # are downloaded here for csit-vpp. # Functions called: # - die - Print to stderr and exit, defined in common_functions.sh @@ -261,6 +266,8 @@ function gather_vpp () { # - ${CSIT_DIR}/resources/tools/scripts/download_install_vpp_pkgs.sh # - Should download and extract requested files to ./. + set -exuo pipefail + case "${TEST_CODE}" in # Not csit-vpp as this code is re-used by ligato gathering. "csit-"*) @@ -273,23 +280,16 @@ function gather_vpp () { warn "Downloading latest VPP packages from Packagecloud." else warn "Downloading stable VPP packages from Packagecloud." - if [[ "${TEST_CODE}" == *"device"* ]]; - then - VPP_VERSION="$(<"${CSIT_DIR}/VPP_STABLE_VER_UBUNTU_BIONIC")" || { - die "Read VPP stable version failed." - } - else - VPP_VERSION="$(<"${CSIT_DIR}/VPP_STABLE_VER_UBUNTU")" || { - die "Read VPP stable version failed." - } - fi + VPP_VERSION="$(<"${CSIT_DIR}/${VPP_VER_FILE}")" || { + die "Read VPP stable version failed." + } fi source "${BASH_FUNCTION_DIR}/artifacts.sh" || die "Source failed." download_artifacts || die ;; "vpp-csit-"*) # Use locally built packages. - mv "${DOWNLOAD_DIR}"/../"vpp"*".deb" "${DOWNLOAD_DIR}"/ || { + mv "${DOWNLOAD_DIR}"/../"vpp"*".${PKG_SUFFIX}" "${DOWNLOAD_DIR}"/ || { die "Move command failed." } ;;