Add support for testing on Gentoo.
This patch adds support for running run_tests.sh on Gentoo by extending the package install functionality. It also switches git to only be installed if not already available. Further, there were some escaping issues that needed to be fixed and are now fixed. Change-Id: I89c2fe488ead4721f8b55b285ce932c26e05401b
This commit is contained in:
parent
a61c62e053
commit
0f30bd0d7c
15
run_tests.sh
15
run_tests.sh
@ -58,32 +58,33 @@ case ${ID,,} in
|
||||
*suse*) pkg_mgr_cmd="zypper -n in" ;;
|
||||
centos|rhel|fedora) pkg_mgr_cmd="${RHT_PKG_MGR} install -y" ;;
|
||||
ubuntu|debian) pkg_mgr_cmd="apt-get install -y" ;;
|
||||
gentoo) pkg_mgr_cmd="emerge" ;;
|
||||
*) echo "unsupported distribution: ${ID,,}"; exit 1 ;;
|
||||
esac
|
||||
|
||||
# Install git so that we can clone the tests repo
|
||||
eval sudo $pkg_mgr_cmd git
|
||||
# Install git so that we can clone the tests repo if git is not available
|
||||
which git &>/dev/null || eval sudo "${pkg_mgr_cmd}" git
|
||||
|
||||
# Clone the tests repo for access to the common test script
|
||||
if [[ ! -d ${COMMON_TESTS_PATH} ]]; then
|
||||
if [[ ! -d "${COMMON_TESTS_PATH}" ]]; then
|
||||
# The tests repo doesn't need a clone, we can just
|
||||
# symlink it.
|
||||
if [[ "$(basename ${WORKING_DIR})" == "openstack-ansible-tests" ]]; then
|
||||
ln -s ${WORKING_DIR} ${COMMON_TESTS_PATH}
|
||||
ln -s "${WORKING_DIR}" "${COMMON_TESTS_PATH}"
|
||||
|
||||
# In zuul v3 any dependent repository is placed into
|
||||
# /home/zuul/src/git.openstack.org, so we check to see
|
||||
# if there is a tests checkout there already. If so, we
|
||||
# symlink that and use it.
|
||||
elif [[ -d "${ZUUL_TESTS_CLONE_LOCATION}" ]]; then
|
||||
ln -s "${ZUUL_TESTS_CLONE_LOCATION}" ${COMMON_TESTS_PATH}
|
||||
ln -s "${ZUUL_TESTS_CLONE_LOCATION}" "${COMMON_TESTS_PATH}"
|
||||
|
||||
# Otherwise we're clearly not in zuul or using a previously setup
|
||||
# repo in some way, so just clone it from upstream.
|
||||
else
|
||||
git clone -b ${TESTING_BRANCH} \
|
||||
git clone -b "${TESTING_BRANCH}" \
|
||||
https://git.openstack.org/openstack/openstack-ansible-tests \
|
||||
${COMMON_TESTS_PATH}
|
||||
"${COMMON_TESTS_PATH}"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -77,9 +77,13 @@ case "${ID,,}" in
|
||||
pkg_list="python-dev lsb-release"
|
||||
sudo apt-get update
|
||||
;;
|
||||
gentoo)
|
||||
sudo emaint-sync -A
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported distribution: ${ID,,}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
eval sudo ${pkg_mgr_cmd} ${pkg_list}
|
||||
|
||||
@ -92,36 +96,39 @@ fi
|
||||
# Install bindep and tox
|
||||
sudo pip install 'bindep>=2.4.0' tox
|
||||
|
||||
if [[ ${ID,,} == "centos" ]]; then
|
||||
if [[ "${ID,,}" == "centos" ]]; then
|
||||
# epel-release could be installed but not enabled (which is very common
|
||||
# in openstack-ci) so enable it here if needed
|
||||
sudo yum-config-manager --enable epel > /dev/null || true
|
||||
elif [[ ${ID,,} == "fedora" ]]; then
|
||||
elif [[ "${ID,,}" == "fedora" ]]; then
|
||||
sudo dnf -y install redhat-lsb-core yum-utils
|
||||
# openSUSE 42.1 does not have python-ndg-httpsclient
|
||||
elif [[ ${ID,,} == *suse* ]] && [[ ${VERSION} == "42.1" ]]; then
|
||||
elif [[ "${ID,,}" == *suse* ]] && [[ ${VERSION} == "42.1" ]]; then
|
||||
sudo pip install ndg-httpsclient
|
||||
fi
|
||||
|
||||
# Get a list of packages to install with bindep. If packages need to be
|
||||
# installed, bindep exits with an exit code of 1.
|
||||
BINDEP_PKGS=$(bindep -b -f ${BINDEP_FILE} test || true)
|
||||
BINDEP_PKGS=$(bindep -b -f "${BINDEP_FILE}" test || true)
|
||||
echo "Packages to install: ${BINDEP_PKGS}"
|
||||
|
||||
# Install OS packages using bindep
|
||||
if [[ ${#BINDEP_PKGS} > 0 ]]; then
|
||||
case "${ID,,}" in
|
||||
*suse*)
|
||||
sudo zypper -n in $BINDEP_PKGS
|
||||
sudo zypper -n in ${BINDEP_PKGS}
|
||||
;;
|
||||
centos|fedora)
|
||||
sudo $RHT_PKG_MGR install -y $BINDEP_PKGS
|
||||
sudo "${RHT_PKG_MGR}" install -y ${BINDEP_PKGS}
|
||||
;;
|
||||
ubuntu|debian)
|
||||
sudo apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
sudo apt-get -q --option "Dpkg::Options::=--force-confold" \
|
||||
--assume-yes install $BINDEP_PKGS
|
||||
--assume-yes install ${BINDEP_PKGS}
|
||||
;;
|
||||
gentoo)
|
||||
sudo emerge -q --jobs="$(nrpoc)" ${BINDEP_PKGS}
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user