Files
kata-containers/tests/run_obs_testing.sh
Gabriela Cervantes 34d2c8136c obs: Remove fedora 28 obs packages
Fedora 28 has come to end of life status which makes not possible to
retrieve the repositories while performing an update. This PR removes
this distro with this version so we not longer create and test obs packages
for fedora 28.

Fixes #879

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-12-13 11:59:50 -06:00

100 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:29' \
'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 install -y 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 "$@"