Files
kata-containers/tools/packaging/tests/run_obs_testing.sh
Peng Tao 782cd2ed10 packaging: merge packaging repository
git-subtree-dir: tools/packaging
git-subtree-mainline: f818b46a41
git-subtree-split: 1f22d72d5d

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2020-06-23 22:58:18 -07:00

99 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (c) 2019 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
set -o errexit
set -o nounset
set -o pipefail
SCRIPT_PATH=$(dirname "$(readlink -f "$0")")
http_proxy="${http_proxy:-}"
https_proxy="${https_proxy:-}"
DOCKERFILE_PATH="${SCRIPT_PATH}/Dockerfile"
declare -a OS_DISTRIBUTION=( \
'ubuntu:16.04' \
'ubuntu:18.04' \
'fedora:30' \
'opensuse/leap:15.1' \
'debian:9' \
'debian:10' \
'centos:7' \
)
install_packages() {
for i in "${OS_DISTRIBUTION[@]}"; do
echo "Test OBS packages for ${OS_DISTRIBUTION}"
run_test "${i}" "${DOCKERFILE_PATH}"
remove_image_and_dockerfile "${i}" "${DOCKERFILE_PATH}"
done
}
run_test() {
local OS_DISTRIBUTION=${1:-}
local DOCKERFILE_PATH=${2:-}
generate_dockerfile "${OS_DISTRIBUTION}" "${DOCKERFILE_PATH}"
build_dockerfile "${OS_DISTRIBUTION}" "${DOCKERFILE_PATH}"
}
generate_dockerfile() {
local OS_DISTRIBUTION=${1:-}
local DOCKERFILE_PATH=${2:-}
DISTRIBUTION_NAME=$(echo "${OS_DISTRIBUTION}" | cut -d ':' -f1)
case "${DISTRIBUTION_NAME}" in
centos)
UPDATE="yum -y update"
DEPENDENCIES="yum install -y curl git gnupg2 lsb-release sudo"
;;
debian|ubuntu)
UPDATE="apt-get -y update"
DEPENDENCIES="apt-get --no-install-recommends install -y apt-utils ca-certificates curl git gnupg2 lsb-release sudo"
;;
fedora)
UPDATE="dnf -y update"
DEPENDENCIES="dnf install -y curl git gnupg2 sudo"
;;
opensuse/leap)
UPDATE="zypper -n refresh"
DEPENDENCIES="zypper -n install curl git gnupg sudo"
esac
echo "Building dockerfile for ${OS_DISTRIBUTION}"
sed \
-e "s|@OS_DISTRIBUTION@|${OS_DISTRIBUTION}|g" \
-e "s|@UPDATE@|${UPDATE}|g" \
-e "s|@DEPENDENCIES@|${DEPENDENCIES}|g" \
"${DOCKERFILE_PATH}/Dockerfile.in" > "${DOCKERFILE_PATH}"/Dockerfile
}
build_dockerfile() {
local OS_DISTRIBUTION=${1:-}
local DOCKERFILE_PATH=${2:-}
pushd "${DOCKERFILE_PATH}"
sudo docker build \
--build-arg http_proxy="${http_proxy}" \
--build-arg https_proxy="${https_proxy}" \
--tag "obs-kata-test-${OS_DISTRIBUTION}" .
popd
}
remove_image_and_dockerfile() {
local OS_DISTRIBUTION=${1:-}
local DOCKERFILE_PATH=${2:-}
echo "Removing image test-${OS_DISTRIBUTION}"
sudo docker rmi "obs-kata-test-${OS_DISTRIBUTION}"
echo "Removing dockerfile"
sudo rm -f "${DOCKERFILE_PATH}/Dockerfile"
}
function main() {
echo "Run OBS testing"
install_packages
}
main "$@"