You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.8 KiB
77 lines
2.8 KiB
#!/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" |
|
|
|
# Activate a virtual env |
|
PS1="[\u@\h \W]\$" source "${HOME}/test-python/bin/activate" |
|
|
|
# Run bindep |
|
"${HOME}/test-python/bin/pip" install "pip>=19.1.1" 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 |
|
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
|
|
|