diff options
Diffstat (limited to 'docker/scripts/dbld_vpp_install_packages.sh')
-rwxr-xr-x | docker/scripts/dbld_vpp_install_packages.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/docker/scripts/dbld_vpp_install_packages.sh b/docker/scripts/dbld_vpp_install_packages.sh new file mode 100755 index 00000000..5e1e0f8f --- /dev/null +++ b/docker/scripts/dbld_vpp_install_packages.sh @@ -0,0 +1,79 @@ +#! /bin/bash + +# Copyright (c) 2021 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 -euxo pipefail + +export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"} +. "$CIMAN_DOCKER_SCRIPTS/lib_vpp.sh" +. "$CIMAN_DOCKER_SCRIPTS/lib_apt.sh" + +must_be_run_in_docker_build + +echo_log +if ! vpp_supported_executor_class "$FDIOTOOLS_EXECUTOR_CLASS" ; then + echo_log "VPP is not supported on executor class '$FDIOTOOLS_EXECUTOR_CLASS'. Skipping $(basename $0)..." + exit 0 +else + echo_log "Starting $(basename $0)" +fi + +do_git_config vpp +for branch in ${VPP_BRANCHES[$OS_NAME]} ; do + do_git_branch "$branch" + + # Install OS packages + make_vpp "install-dep" "$branch" + + # Download, build, and cache external deps packages + make_vpp "install-ext-deps" "$branch" + vpp_ext_dir="$DOCKER_VPP_DIR/build/external" + rsync -ac $vpp_ext_dir/downloads/. $DOCKER_DOWNLOADS_DIR || true + if which apt >/dev/null ; then + vpp_ext_deps_pkg=$vpp_ext_dir/$(dpkg -l vpp-ext-deps 2>/dev/null | mawk '/vpp-ext-deps/{print $2"_"$3"_"$4".deb"}') + else + echo "ERROR: Package Manager not installed!" + exit 1 + fi + if [ -f "$vpp_ext_deps_pkg" ] ; then + cp -f $vpp_ext_deps_pkg $DOCKER_DOWNLOADS_DIR + else + echo "ERROR: Missing VPP external deps package: '$vpp_ext_deps_pkg'" + exit 1 + fi + # TODO: remove this after all supported VPP branches have removed + # python3-virtualenv & virtualenv from install-deps which are no longer + # used in vpp repo. These packages can mess up csit virtualenv + # installation which uses pip3 + sudo apt remove -y --purge --autoremove python3-virtualenv virtualenv || true + + # Install/cache python packages + make_vpp_test "test-dep" "$branch" + if [ "$OS_ID" = "ubuntu" ] ; then + make_vpp test-wipe "$branch" + fi + # Clean up virtual environment + git checkout -q -- . + git clean -qfdx + + # Dump packages installed + case "$DOCKERFILE_FROM" in + *ubuntu*) + dump_apt_package_list "$branch" ;; + *debian*) + dump_apt_package_list "$branch" ;; + esac +done + +echo_log -e "Completed $(basename $0)!\n\n==========" |