Merge "Use Ubuntu-20.04 for vpp-csit-* job executor images"
[ci-management.git] / docker / scripts / dbld_vpp_install_packages.sh
1 #! /bin/bash
2
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:
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
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.
15
16 set -euxo pipefail
17
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"
23
24 must_be_run_in_docker_build
25
26 echo_log
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)..."
29     exit 0
30 else
31     echo_log "Starting  $(basename $0)"
32 fi
33
34 do_git_config vpp
35 for branch in ${VPP_BRANCHES[$OS_NAME]} ; do
36     do_git_branch "$branch"
37
38     # Install OS packages
39     make_vpp "install-dep" "$branch"
40     make_vpp "centos-pyyaml" "$branch" # VPP Makefile tests for centos versions
41     if [ "$OS_ID" = "ubuntu" ] ; then
42         # TODO: fix VPP stable/2005 bug in sphinx-make.sh
43         #       which fails on 'yum install python3-venv'
44         #       that does not exist.
45         # 'Make docs jobs are only run on ubuntu executors
46         #  so only run for ubuntu build executors until fixed.
47         make_vpp "docs-venv" "$branch"
48     elif [ "$OS_NAME" = "debian-9" ] ; then
49         apt_override_cmake_install_with_pip3_version
50     fi
51
52     # Download, build, and cache external deps packages
53     make_vpp "install-ext-deps" "$branch"
54     set +e
55     vpp_ext_dir="$DOCKER_VPP_DIR/build/external"
56     [ -d "$vpp_ext_dir/downloads" ] \
57         && rsync -ac "$vpp_ext_dir/downloads/." "$DOCKER_DOWNLOADS_DIR"
58     [ -n "$(ls $vpp_ext_dir/*.deb)" ] \
59         && rsync -ac "$vpp_ext_dir/*.deb" "$DOCKER_DOWNLOADS_DIR"
60     [ -n "$(ls $vpp_ext_dir/*.rpm)" ] \
61         && rsync -ac "$vpp_ext_dir/*.rpm" "$DOCKER_DOWNLOADS_DIR"
62     set -e
63
64     # Install/cache python packages
65     if [ "$OS_ID" = "ubuntu" ] ; then
66         make_vpp_test "test-dep" "$branch"
67         make_vpp_test "doc" "$branch"
68         make_vpp test-wipe "$branch"
69         make_vpp "bootstrap-doxygen" "$branch"
70     fi
71
72     # Dump packages installed
73     case "$DOCKERFILE_FROM" in
74         *ubuntu*)
75             dump_apt_package_list "$branch" ;;
76         *debian*)
77             dump_apt_package_list "$branch" ;;
78         *centos:7)
79             dump_yum_package_list "$branch" ;;
80         *centos:8)
81             dump_dnf_package_list "$branch" ;;
82     esac
83 done
84
85 echo_log -e "Completed $(basename $0)!\n\n=========="