add dpdk-plugin for honeycomb download artifacts
[csit.git] / resources / tools / scripts / download_hc_pkgs.sh
1 #!/bin/bash
2
3 # Copyright (c) 2019 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 -x
17
18 STREAM=$1
19 OS=$2
20
21 # TODO(CSIT-994): reenable NSH
22 # NSH_GROUP="io.fd.nsh_sfc"
23 # NSH_ARTIFACTS="vpp-nsh-plugin"
24 # Figure out what system we are running on
25 if [[ -f /etc/os-release ]];then
26     source /etc/os-release
27 else
28     echo "Cannot determine OS version"
29     exit 1
30 fi
31 echo "----- OS INFO -----"
32 echo DISTRIB_ID: ${ID}
33 echo DISTRIB_RELEASE: ${VERSION_ID}
34 echo DISTRIB_CODENAME: ${VERSION_CODENAME}
35 echo DISTRIB_DESCRIPTION: ${PRETTY_NAME}
36
37 VERSION="RELEASE"
38 echo "----- DOWNLOADING HONEYCOMB AND JVPP PACKAGES -----"
39 REPO_URL="https://packagecloud.io/fdio/${STREAM}"
40 echo "REPO_URL: ${REPO_URL}"
41 if [[ "$ID" == "ubuntu" ]]; then
42     if [[ -f /etc/apt/sources.list.d/99fd.io.list ]];then
43         echo "Deleting: /etc/apt/sources.list.d/99fd.io.list"
44         sudo rm /etc/apt/sources.list.d/99fd.io.list
45     fi
46     curl -s https://packagecloud.io/install/repositories/fdio/${STREAM}/script.deb.sh | sudo bash
47     apt-get download honeycomb vpp-api-java || true
48 elif [[ "$ID" == "centos" ]]; then
49     if [[ -f /etc/yum.repos.d/fdio-master.repo ]]; then
50         echo "Deleting: /etc/yum.repos.d/fdio-master.repo"
51         sudo rm /etc/yum.repos.d/fdio-master.repo
52     fi
53     curl -s https://packagecloud.io/install/repositories/fdio/${STREAM}/script.rpm.sh | sudo bash
54     sudo yum -y install --downloadonly --downloaddir=./ honeycomb vpp-api-java || true
55 fi
56
57 # TODO(CSIT-994): reenable NSH
58 # for ART in ${NSH_ARTIFACTS}; do
59 #     for PAC in ${PACKAGE}; do
60 #         curl "${URL}?r=${REPO}&g=${NSH_GROUP}&a=${ART}&p=${PAC}&v=${VER}&c=${CLASS}" -O -J || exit
61 #     done
62 # done
63
64 # determine VPP dependency
65 # use latest if honeycomb package does not depend on single VPP version, e.g. stable branches since HC2VPP-285
66 VERSION="RELEASE"
67 if [[ "${OS}" == "centos7" ]]; then
68     HC_VPP_VER=`rpm -qpR honeycomb*.rpm | grep -oP 'vpp = \K.+'`
69     if [[ "${HC_VPP_VER}" != "" ]]; then
70         VERSION=${HC_VPP_VER}.x86_64
71     fi
72 else
73     HC_VPP_VER=`dpkg -I honeycomb*.deb | grep -oP 'vpp \(= \K[^\)]+'`
74     if [[ "${HC_VPP_VER}" != "" ]]; then
75         VERSION=${HC_VPP_VER}
76     fi
77 fi
78
79 VPP_DEB_NEW_ARTIFACTS="vpp libvppinfra vpp-plugin-core vpp-plugin-dpdk"
80 VPP_DEB_ARTIFACTS="vpp vpp-lib vpp-plugins"
81 VPP_RPM_ARTIFACTS="vpp vpp-lib vpp-plugins"
82 # Check OS and stream to set correct packages
83 if [[ "$ID" == "centos" ]]; then
84     VPP_ARTIFACTS=${VPP_RPM_ARTIFACTS}
85 elif [[ "$ID" == "ubuntu" ]]; then
86     if [[ "1807 1810 1901" =~ .*$STREAM.* ]]; then
87         VPP_ARTIFACTS=${VPP_DEB_ARTIFACTS}
88     else
89         VPP_ARTIFACTS=${VPP_DEB_NEW_ARTIFACTS}
90     fi
91 fi
92 VPP_DEB_PACKAGES=""
93 VPP_RPM_PACKAGES=""
94 INSTALL_PACKAGES=""
95 for ART in ${VPP_ARTIFACTS}; do
96     INSTALL_PACKAGES="$INSTALL_PACKAGES $ART*"
97     if [[ "${VERSION}" != 'RELEASE' ]]; then
98             VPP_DEB_PACKAGES="$VPP_DEB_PACKAGES $ART=$VERSION"
99             VPP_RPM_PACKAGES="$VPP_RPM_PACKAGES $ART-$VERSION"
100     else
101         VPP_DEB_PACKAGES="$VPP_DEB_PACKAGES $ART"
102         VPP_RPM_PACKAGES="$VPP_RPM_PACKAGES $ART"
103     fi
104 done
105
106 echo "----- DOWNLOADING VPP PACKAGES -----"
107 REPO_URL="https://packagecloud.io/fdio/${STREAM}"
108 echo "REPO_URL: ${REPO_URL}"
109 if [[ "$ID" == "ubuntu" ]]; then
110     apt-get download ${VPP_DEB_PACKAGES} || true
111 elif [[ "$ID" == "centos" ]]; then
112     sudo yum -y install --downloadonly --downloaddir=./ ${VPP_RPM_PACKAGES} || true
113 fi