summaryrefslogtreecommitdiffstats
path: root/docker/scripts/lib_csit.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/scripts/lib_csit.sh')
-rw-r--r--docker/scripts/lib_csit.sh130
1 files changed, 57 insertions, 73 deletions
diff --git a/docker/scripts/lib_csit.sh b/docker/scripts/lib_csit.sh
index 6c064d0a..2e877f80 100644
--- a/docker/scripts/lib_csit.sh
+++ b/docker/scripts/lib_csit.sh
@@ -1,7 +1,7 @@
# lib_csit.sh - Docker build script CSIT library.
# For import only.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 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:
@@ -20,11 +20,9 @@ if [ -n "$(alias lib_csit_imported 2> /dev/null)" ] ; then
fi
alias lib_csit_imported=true
-export CIMAN_DOCKER_SCRIPTS="${CIMAN_DOCKER_SCRIPTS:-$(dirname $BASH_SOURCE)}"
+export CIMAN_DOCKER_SCRIPTS="${CIMAN_DOCKER_SCRIPTS:-$(dirname ${BASH_SOURCE[0]})}"
. "$CIMAN_DOCKER_SCRIPTS/lib_common.sh"
. "$CIMAN_DOCKER_SCRIPTS/lib_apt.sh"
-. "$CIMAN_DOCKER_SCRIPTS/lib_yum.sh"
-. "$CIMAN_DOCKER_SCRIPTS/lib_dnf.sh"
CSIT_SUPPORTED_EXECUTOR_CLASSES="builder csit_dut"
csit_supported_executor_class() {
@@ -36,10 +34,7 @@ csit_supported_executor_class() {
csit_supported_os() {
case "$1" in
- # TODO: Remove ubuntu-18.04 once CSIT has completed transition
- # to ubuntu-20.04
- ubuntu-18.04) return 0 ;;
- ubuntu-20.04) return 0 ;;
+ ubuntu-22.04) return 0 ;;
*) ;;
esac
return 1
@@ -55,12 +50,14 @@ csit_checkout_branch_for_vpp() {
&& source "$csit_bash_function_dir/branch.sh"
CSIT_DIR="$csit_dir" checkout_csit_for_vpp "$vpp_branch"
+ # shellcheck disable=SC2034,SC2063
csit_branch="$(git branch | grep -e '^*' | mawk '{print $2}')"
}
csit_install_packages() {
local branch="$1"
- local branchname="$(echo $branch | sed -e 's,/,_,')"
+ local branchname
+ branchname="$(echo $branch | sed -e 's,/,_,')"
local csit_dir="$DOCKER_CSIT_DIR"
local csit_ansible_dir="$csit_dir/fdio.infra.ansible"
if [ ! -d "$csit_ansible_dir" ] ; then
@@ -70,48 +67,28 @@ csit_install_packages() {
bld_log="${bld_log}-$branchname-csit_install_packages-bld.log"
git clean -qfdx
+ python3 -m pip install pyyaml
- # Install PyYAML required by dbld_csit_find_ansible_packages.py
- #
- # Note: Conditional install due to Bug 1696324 -
- # Update to python3.6 breaks PyYAML dependencies
- # Status: CLOSED CANTFIX
- # https://bugzilla.redhat.com/show_bug.cgi?id=1696324
- if [ "$OS_NAME" = "centos-8" ] ; then
- dnf_install_packages python3-pyyaml
- else
- python3 -m pip install pyyaml
- fi
-
- local exclude_roles="-e calibration -e kernel -e mellanox -e nomad -e consul"
+ local exclude_roles="-e calibration -e kernel -e mellanox -e nomad -e consul -e aws -e vpp"
[ "$OS_ARCH" = "aarch64" ] && exclude_roles="$exclude_roles -e iperf"
# Not in double quotes to let bash remove newline characters
- local yaml_files="$(grep -r packages_by $csit_ansible_dir | cut -d: -f1 | sort -u | grep -v $exclude_roles)"
+ local yaml_files
+ yaml_files="$(grep -r packages_by $csit_ansible_dir | cut -d: -f1 | sort -u | grep -v $exclude_roles)"
packages="$(dbld_csit_find_ansible_packages.py --$OS_ID --$OS_ARCH $yaml_files)"
- packages="${packages/bionic /}"
+ packages="${packages/jammy /}"
packages="${packages/focal /}"
+ packages="${packages/libmbedcrypto1/libmbedcrypto3}"
+ packages="${packages/libmbedtls10/libmbedtls12}"
+ packages="$(echo ${packages//python\-/python3\-} | tr ' ' '\n' | sort -u | xargs)"
- # TODO: Fix Ubuntu-18.04 specific package names that fail on Ubuntu-20.04
- # (remove when CSIT is updated)
- if [ "$OS_NAME" = "ubuntu-20.04" ] ; then
- packages="${packages/libmbedcrypto1/libmbedcrypto3}"
- packages="${packages/libmbedtls10/libmbedtls12}"
- packages="$(echo ${packages//python\-/python3\-} | tr ' ' '\n' | sort -u | xargs)"
- fi
if [ -n "$packages" ] ; then
case "$OS_NAME" in
ubuntu*)
- apt_install_packages $packages
+ apt_install_packages "$packages" 2>&1 | tee -a "$bld_log"
;;
debian*)
- apt_install_packages $packages
- ;;
- centos-7)
- yum_install_packages $packages
- ;;
- centos-8)
- dnf_install_packages $packages
+ apt_install_packages "$packages" 2>&1 | tee -a "$bld_log"
;;
*)
echo "Unsupported OS ($OS_ID): CSIT packages NOT INSTALLED!"
@@ -120,9 +97,37 @@ csit_install_packages() {
fi
}
+csit_install_hugo() {
+ local branch="$1"
+ CSIT_DIR="$DOCKER_CSIT_DIR"
+
+ if [ -f "$CSIT_DIR/VPP_REPO_URL" ] \
+ && [ -f "$CSIT_DIR/requirements.txt" ]; then
+
+ local branchname
+ # use bash variable substitution to replace '/' with '_' to convert from
+ # vpp to csit branch name nomenclature
+ branchname="${branch////_}"
+ local csit_bash_function_dir="$CSIT_DIR/resources/libraries/bash/function"
+ local bld_log="$DOCKER_BUILD_LOG_DIR"
+ bld_log="${bld_log}/$FDIOTOOLS_IMAGENAME-$branchname-csit_install_hugo-bld.log"
+
+ description="Install CSIT hugo packages from $branch branch"
+ echo_log " Starting $description..."
+ git clean -qfdx
+
+ source "$csit_bash_function_dir"/hugo.sh
+ go_install 2>&1 | tee -a "$bld_log"
+ hugo_install 2>&1 | tee -a "$bld_log"
+
+ else
+ echo_log "ERROR: Missing or invalid CSIT_DIR: '$CSIT_DIR'!"
+ return 1
+ fi
+}
+
csit_pip_cache() {
local branch="$1"
- local VENV_OPTS=""
# ensure PS1 is defined (used by virtualenv activate script)
PS1=${PS1:-"#"}
CSIT_DIR="$DOCKER_CSIT_DIR"
@@ -130,55 +135,34 @@ csit_pip_cache() {
if [ -f "$CSIT_DIR/VPP_REPO_URL" ] \
&& [ -f "$CSIT_DIR/requirements.txt" ]; then
+ local branchname
+ # use bash variable substitution to replace '/' with '_' to convert from
+ # vpp to csit branch name nomenclature
+ branchname="${branch////_}"
local csit_bash_function_dir="$CSIT_DIR/resources/libraries/bash/function"
- local branchname="$(echo $branch | sed -e 's,/,_,')"
local bld_log="$DOCKER_BUILD_LOG_DIR"
bld_log="${bld_log}/$FDIOTOOLS_IMAGENAME-$branchname-csit_pip_cache-bld.log"
- local pip_cmd="python3 -m pip --disable-pip-version-check"
export PYTHONPATH=$CSIT_DIR
description="Install CSIT python packages from $branch branch"
- echo_log " Starting $description..."
- git clean -qfdx
+ echo_log " Starting $description..." 2>&1 | tee -a "$bld_log"
+ git clean -qfdx 2>&1 | tee -a "$bld_log"
rm -rf "$PYTHONPATH/env"
- # TODO: Update CSIT release branches to avoid build breakage
- # Fixes https://github.com/pypa/pip/issues/8260
- $pip_cmd install pip==21.0.1
- # rls2009_lts-* branches missing cherry-pick of
- # https://gerrit.fd.io/r/c/csit/+/31338
- sed -i 's/scipy==1.1.0/scipy==1.5.4/' "$PYTHONPATH/requirements.txt"
-
- # Virtualenv version is pinned in common.sh in newer csit branches.
- # (note: xargs removes leading/trailing spaces)
+ # Activate / install CSIT python virtualenv ($CSIT_DIR/requirements.txt)
local common_sh="$csit_bash_function_dir/common.sh"
- install_virtualenv="$(grep 'virtualenv' $common_sh | grep pip | grep install | cut -d'|' -f1 | xargs)"
- $install_virtualenv
- virtualenv --no-download --python=$(which python3) "$CSIT_DIR/env"
- source "$CSIT_DIR/env/bin/activate"
-
- if [ "$OS_ARCH" = "aarch64" ] ; then
- local numpy_ver="$(grep numpy $PYTHONPATH/requirements.txt)"
- [ -n "$numpy_ver" ] && $pip_cmd install $numpy_ver 2>&1 | \
- tee -a $bld_log
- fi
+ # shellcheck disable=1090
+ source "$common_sh"
+ activate_virtualenv "${CSIT_DIR}" "${CSIT_DIR}/requirements.txt" 2>&1 | tee -a "$bld_log"
- # Install csit python requirements
- $pip_cmd install -r "$CSIT_DIR/requirements.txt" 2>&1 | \
- tee -a "$bld_log"
# Install tox python requirements
- $pip_cmd install -r "$CSIT_DIR/tox-requirements.txt" 2>&1 | \
+ activate_virtualenv "${CSIT_DIR}" "${CSIT_DIR}/tox-requirements.txt" 2>&1 |\
tee -a "$bld_log"
- # Run tox which installs pylint requirments
- pushd $CSIT_DIR >& /dev/null
- tox || true
- popd >& /dev/null
# Clean up virtualenv directories
- deactivate
git checkout -q -- .
git clean -qfdx
- echo_log " Completed $description!"
+ echo_log " Completed $description!" 2>&1 | tee -a "$bld_log"
else
echo_log "ERROR: Missing or invalid CSIT_DIR: '$CSIT_DIR'!"
return 1