
This change converts our use of CentOS7/88 to UBI8, which should provide a better test environment which will match that of production for future releases of TripleO. While this image change will better match production clouds thanks in large part to TCIB, it will also remove our use of docker.io (dockerhub) which fraught with peril due to the ongoing API rate limits saga. Change-Id: I69f3400568d865c1f3505913077ecd7fe36d7d43 Signed-off-by: Gael Chamoulaud (Strider) <gchamoul@redhat.com>
76 lines
2.8 KiB
Bash
Executable File
76 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright 2019 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.
|
|
|
|
|
|
## Shell Opts ----------------------------------------------------------------
|
|
|
|
set -o pipefail
|
|
set -xeuo
|
|
|
|
## Vars ----------------------------------------------------------------------
|
|
|
|
export PROJECT_DIR="$(dirname $(readlink -f ${BASH_SOURCE[0]}))/../"
|
|
export ROLE_NAME="${ROLE_NAME:-$1}"
|
|
export TRIPLEO_JOB_ANSIBLE_ARGS=${TRIPLEO_JOB_ANSIBLE_ARGS:-""}
|
|
|
|
## Main ----------------------------------------------------------------------
|
|
|
|
# Source distribution information
|
|
source /etc/os-release || source /usr/lib/os-release
|
|
RHT_PKG_MGR=$(command -v dnf || command -v yum)
|
|
PYTHON_EXEC=$(command -v python3 || command -v python)
|
|
|
|
# Install the one requirement we need to run any local test
|
|
case "${ID,,}" in
|
|
amzn|rhel|centos|fedora)
|
|
sudo "${RHT_PKG_MGR}" install -y python*-virtualenv
|
|
;;
|
|
esac
|
|
|
|
# Ensure the required ci file is present
|
|
sudo mkdir -p /etc/ci
|
|
sudo touch /etc/ci/mirror_info.sh
|
|
|
|
# Create a virtual env
|
|
"${PYTHON_EXEC}" -m virtualenv --system-site-packages "${HOME}/test-python"
|
|
|
|
# Run bindep
|
|
"${HOME}/test-python/bin/pip" install pip setuptools bindep --upgrade
|
|
"${PROJECT_DIR}/scripts/bindep-install"
|
|
|
|
# Install local requirements
|
|
if [[ -d "${HOME}/.cache/pip/wheels" ]]; then
|
|
rm -rf "${HOME}/.cache/pip/wheels"
|
|
fi
|
|
"${HOME}/test-python/bin/pip" install \
|
|
-r "${PROJECT_DIR}/requirements.txt" \
|
|
-r "${PROJECT_DIR}/test-requirements.txt" \
|
|
-r "${PROJECT_DIR}/molecule-requirements.txt"
|
|
|
|
# Run local test
|
|
PS1="[\u@\h \W]\$" source "${HOME}/test-python/bin/activate"
|
|
source "${PROJECT_DIR}/ansible-test-env.rc"
|
|
export ANSIBLE_ROLES_PATH="${ANSIBLE_ROLES_PATH}:${HOME}/zuul-jobs/roles"
|
|
ansible-playbook -i "${PROJECT_DIR}/tests/hosts.ini" \
|
|
-e "tripleo_src=$(realpath --relative-to="${HOME}" "${PROJECT_DIR}")" \
|
|
-e "tripleo_validations_role_name=${ROLE_NAME}" \
|
|
-e "tripleo_job_ansible_args='${TRIPLEO_JOB_ANSIBLE_ARGS}'" \
|
|
-e "ansible_user=${USER}" \
|
|
-e "ansible_user_dir=${HOME}" \
|
|
"${PROJECT_DIR}/tests/prepare-test-host.yml" \
|
|
"${PROJECT_DIR}/ci/playbooks/run-local.yml" \
|
|
-v
|