
Using run-local-test locally can cause issue depending on your local environment setup. For example, the script assumes you have ansible installed. If you do, you'll hit issues when you start running molecule tests that look like this: original message: template error while templating string: no filter named 'molecule_from_yaml'. String: {{ lookup('file', molecule_file) | molecule_from_yaml }} This is because ansible and/or molecule is installed outside of the virtualenv (${HOME}/test-python). If we remove ansible/molecule, then run-local-test is going to fail because it doesn't have ansible available to it to kick everything off in run-local-test. This isn't a problem with zuul since zuul nodes have ansible installed already (and it doesn't use run-local-test as the test entry point). This commit attempts to work around the problem by installing basic dependencies (molecule-requirements.txt) in run-local-test. This is slightly redundant with zuul.d/playbooks/pre.yml but we need to support both cases for zuul and local development. Change-Id: Ic6b6c3dabd8774827e366d3177c9b6c4f21d13b1
43 lines
1.7 KiB
Bash
43 lines
1.7 KiB
Bash
#!/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.
|
|
|
|
|
|
set -o pipefail
|
|
set -xeo
|
|
|
|
export ANSIBLE_ROLES_PATH="${ANSIBLE_ROLES_PATH}:${HOME}/zuul-jobs/roles"
|
|
export PROJECT_DIR="$(dirname $(readlink -f ${BASH_SOURCE[0]}))/../"
|
|
export UPPER_CONSTRAINTS_FILE=${UPPER_CONSTRAINTS_FILE:-"https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt"}
|
|
|
|
function run_pip {
|
|
"${HOME}/test-python/bin/pip" install \
|
|
-c "${UPPER_CONSTRAINTS_FILE}" \
|
|
-r "${PROJECT_DIR}/molecule-requirements.txt" ${@:-}
|
|
}
|
|
|
|
# Create a virtual environment and install dependencies
|
|
PYTHON_EXEC=$(command -v python3 || command -v python)
|
|
"${PYTHON_EXEC}" -m virtualenv --system-site-packages "${HOME}/test-python"
|
|
run_pip
|
|
|
|
|
|
ansible-playbook -i "${PROJECT_DIR}/tests/hosts.ini" \
|
|
-e "tripleo_src=$(realpath --relative-to="${HOME}" "${PROJECT_DIR}")" \
|
|
-e "ansible_user=${USER}" \
|
|
-e "ansible_user_dir=${HOME}" \
|
|
"${PROJECT_DIR}/playbooks/prepare-test-host.yml" \
|
|
"${PROJECT_DIR}/zuul.d/playbooks/run-local.yml"
|