summaryrefslogtreecommitdiffstats
path: root/docker/scripts/lib_yum.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/scripts/lib_yum.sh')
-rw-r--r--docker/scripts/lib_yum.sh156
1 files changed, 156 insertions, 0 deletions
diff --git a/docker/scripts/lib_yum.sh b/docker/scripts/lib_yum.sh
new file mode 100644
index 00000000..95a728e6
--- /dev/null
+++ b/docker/scripts/lib_yum.sh
@@ -0,0 +1,156 @@
+# lib_yum.sh - Docker build script yum library.
+# For import only.
+
+# Copyright (c) 2020 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.
+
+# Don't import more than once.
+if [ -n "$(alias lib_yum_imported 2> /dev/null)" ] ; then
+ return 0
+fi
+alias lib_yum_imported=true
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. $CIMAN_DOCKER_SCRIPTS/lib_common.sh
+
+dump_yum_package_list() {
+ branchname="$(echo $branch | sed -e 's,/,_,')"
+ yum list installed > \
+ "$DOCKER_BUILD_LOG_DIR/$FDIOTOOLS_IMAGENAME-$branchname-yum-packages.log"
+}
+
+yum_install_packages() {
+ yum install -y $@
+}
+
+yum_install_docker_os_package_dependancies() {
+ yum_install_packages yum-utils
+}
+
+yum_install_docker() {
+ yum-config-manager --add-repo \
+ https://download.docker.com/linux/${OS_ID}/docker-ce.repo
+ yum-config-manager --enablerepo=docker-ce-stable
+ yum_install_packages docker-ce docker-ce-cli containerd.io
+}
+
+generate_yum_dockerfile() {
+ local executor_os_name=$1
+ local from_image=$2
+ local executor_image=$3
+ local from_image_os_id="$(echo $from_image | cut -d: -f2)"
+
+ cat <<EOF >$DOCKERFILE
+FROM $from_image AS executor-image
+LABEL Description="FD.io CI executor docker image for $executor_os_name/$OS_ARCH"
+LABEL Vendor="fd.io"
+LABEL Version="$DOCKER_TAG"
+
+# Build Environment Variables
+ENV FDIOTOOLS_IMAGE=$executor_image
+ENV LC_ALL=en_US.UTF-8
+ENV CIMAN_ROOT="$DOCKER_CIMAN_ROOT"
+ENV PATH=$PATH:$DOCKER_CIMAN_ROOT/docker/scripts
+
+# Copy-in build tree containing
+# ci-management, vpp, & csit git repos
+WORKDIR $DOCKER_BUILD_DIR
+COPY . .
+
+# Install baseline packages (minimum build & utils).
+#
+# ci-management global-jjb requirements:
+# for lf-env.sh:
+# facter
+# from global-jjb/packer/provision/baseline.sh:
+# deltarpm
+# unzip
+# xz
+# puppet
+# python3-pip
+# git
+# git-review
+# perl-XML-XPath
+# make
+# wget
+#
+# TODO: Fix broken project requirement install targets
+#
+# graphviz for 'make bootstrap-doxygen' (VPP)
+# doxygen for 'make doxygen' (VPP)
+# enchant for 'make docs' (VPP)
+# libffi-devel for python cffi install (Ubuntu20.04/VPP/aarch64)
+# libpcap-devel for python pypcap install (CSIT)
+# liblapack-devel for python numpy/scipy (CSIT/aarch64)
+# libopenblas-devel for python numpy/scipy (CSIT/aarch64)
+#
+RUN yum update -y \\
+ && yum install -y \\
+ epel-release \\
+ && yum clean all
+RUN yum update -y \\
+ && yum install -y \\
+ yum-utils \\
+ deltarpm \\
+ doxygen \\
+ enchant \\
+ emacs \\
+ facter \\
+ git \\
+ git-review \\
+ graphviz \\
+ iproute \\
+ java-1.8.0-openjdk \\
+ java-1.8.0-openjdk-devel \\
+ jq \\
+ libffi-devel \\
+ liblapack-devel \\
+ libopenblas-devel \\
+ libpcap-devel \\
+ make \\
+ mawk \\
+ mock \\
+ perl \\
+ perl-XML-XPath \\
+ python3-pip \\
+ puppet \\
+ rake \\
+ ruby-devel \\
+ sudo \\
+ tree \\
+ unzip \\
+ vim \\
+ wget \\
+ xz \\
+ && yum clean all
+
+# Install packages for all project branches
+#
+RUN yum update -y \\
+ && dbld_install_docker.sh \\
+ && dbld_vpp_install_packages.sh \\
+ && dbld_csit_install_packages.sh \\
+ && dbld_lfit_requirements.sh \\
+ && yum clean all
+
+# CI Runtime Environment
+WORKDIR /
+ENV VPP_ZOMBIE_NOCHECK=1
+RUN gem install package_cloud \\
+ && curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash
+
+# Clean up
+RUN dbld_dump_build_logs.sh \\
+ && rm -rf /tmp/*
+EOF
+}