3 # Copyright (c) 2021 Cisco and/or its affiliates.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
18 export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
19 . "$CIMAN_DOCKER_SCRIPTS/lib_vpp.sh"
20 . "$CIMAN_DOCKER_SCRIPTS/lib_apt.sh"
21 . "$CIMAN_DOCKER_SCRIPTS/lib_yum.sh"
22 . "$CIMAN_DOCKER_SCRIPTS/lib_dnf.sh"
24 must_be_run_in_docker_build
27 if ! vpp_supported_executor_class "$FDIOTOOLS_EXECUTOR_CLASS" ; then
28 echo_log "VPP is not supported on executor class '$FDIOTOOLS_EXECUTOR_CLASS'. Skipping $(basename $0)..."
31 echo_log "Starting $(basename $0)"
35 for branch in ${VPP_BRANCHES[$OS_NAME]} ; do
36 do_git_branch "$branch"
39 make_vpp "install-dep" "$branch"
40 make_vpp "centos-pyyaml" "$branch" # VPP Makefile tests for centos versions
41 if [ "$OS_ID" = "ubuntu" ] && [ "$OS_ARCH" = "x86_64" ] ; then
42 # 'Make docs jobs are only run on ubuntu x86_64 executors
43 # so only run for ubuntu build executors.
44 make_vpp "docs-venv" "$branch"
47 # Download, build, and cache external deps packages
48 make_vpp "install-ext-deps" "$branch"
49 vpp_ext_dir="$DOCKER_VPP_DIR/build/external"
50 rsync -ac $vpp_ext_dir/downloads/. $DOCKER_DOWNLOADS_DIR || true
51 if which apt >/dev/null ; then
52 vpp_ext_deps_pkg=$vpp_ext_dir/$(dpkg -l vpp-ext-deps 2>/dev/null | mawk '/vpp-ext-deps/{print $2"_"$3"_"$4".deb"}')
53 elif which dnf >/dev/null ; then
54 inst_vpp_ext_deps="$(dnf list vpp-ext-deps 2>/dev/null | grep vpp-ext-deps)"
55 vpp_ext_deps_ver="$(echo $inst_vpp_ext_deps | mawk '{print $2}')"
56 vpp_ext_deps_arch="$(echo $inst_vpp_ext_deps | mawk '{print $1}'| cut -d'.' -f2)"
57 vpp_ext_deps_pkg="$vpp_ext_dir/vpp-ext-deps-${vpp_ext_deps_ver}.${vpp_ext_deps_arch}.rpm"
58 elif which yum >/dev/null ; then
59 inst_vpp_ext_deps="$(yum list vpp-ext-deps 2>/dev/null | grep vpp-ext-deps)"
60 vpp_ext_deps_ver="$(echo $inst_vpp_ext_deps | mawk '{print $2}')"
61 vpp_ext_deps_arch="$(echo $inst_vpp_ext_deps | mawk '{print $1}' | cut -d'.' -f2)"
62 vpp_ext_deps_pkg="$vpp_ext_dir/vpp-ext-deps-${vpp_ext_deps_ver}.${vpp_ext_deps_arch}.rpm"
64 echo "ERROR: Package Manager not installed!"
67 if [ -f "$vpp_ext_deps_pkg" ] ; then
68 cp -f $vpp_ext_deps_pkg $DOCKER_DOWNLOADS_DIR
70 echo "ERROR: Missing VPP external deps package: '$vpp_ext_deps_pkg'"
73 # Install/cache python packages
74 if [ "$OS_ID" = "ubuntu" ] ; then
75 make_vpp_test "test-dep" "$branch"
76 make_vpp_test "doc" "$branch"
77 make_vpp test-wipe "$branch"
78 make_vpp "bootstrap-doxygen" "$branch"
81 # Dump packages installed
82 case "$DOCKERFILE_FROM" in
84 dump_apt_package_list "$branch" ;;
86 dump_apt_package_list "$branch" ;;
88 dump_dnf_package_list "$branch" ;;
92 echo_log -e "Completed $(basename $0)!\n\n=========="