Use tests repo for common role test requirements
Using tox for requirements management requires in-repo requirements files for all our repositories. Rather than do that, we make use of the tests repo to capture our common requirements and use this to install them. This reduces our review requirement rate and simplifies maintenance for us for the tox config. It also makes it usable with 'Depends-On', which is marvellous! The tox requirements definitions for docs/releasenotes builds are left in-place as those are standard entries across the community. If that changes at some point, we can re-assess those entries too. Some old test cruft is also removed. Depends-On: https://review.openstack.org/579208 Change-Id: Iee798c2660f69afe7c40cd3d2e9b801434944eff
This commit is contained in:
parent
e0a27e69a8
commit
8d8411196e
|
@ -1,9 +0,0 @@
|
|||
# The order of packages is significant, because pip processes them in the order
|
||||
# of appearance. Changing the order has an impact on the overall integration
|
||||
# process, which may cause wedges in the gate later.
|
||||
bashate>=0.5.1 # Apache-2.0
|
||||
flake8<2.6.0,>=2.5.4 # MIT
|
||||
pyasn1>=0.1.8 # BSD
|
||||
pyOpenSSL>=16.2.0 # Apache-2.0
|
||||
requests>=2.14.2 # Apache-2.0
|
||||
ndg-httpsclient>=0.4.2;python_version<'3.0' # BSD
|
|
@ -1,99 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright 2017, taseer94@gmail.com
|
||||
#
|
||||
# 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.
|
||||
|
||||
# PURPOSE:
|
||||
# This script clones the openstack-ansible-tests repository to the
|
||||
# tests/common folder in order to be able to re-use test components
|
||||
# for role testing.
|
||||
|
||||
# WARNING:
|
||||
# This file is maintained in the openstack-ansible-tests repository:
|
||||
# https://git.openstack.org/cgit/openstack/openstack-ansible-tests
|
||||
# If you need to change this script, then propose the change there.
|
||||
# Once it merges, the change will be replicated to the other repositories.
|
||||
|
||||
## Shell Opts ----------------------------------------------------------------
|
||||
|
||||
set -e
|
||||
|
||||
## Vars ----------------------------------------------------------------------
|
||||
|
||||
export TESTING_HOME=${TESTING_HOME:-$HOME}
|
||||
export WORKING_DIR=${WORKING_DIR:-$(pwd)}
|
||||
export CLONE_UPGRADE_TESTS=${CLONE_UPGRADE_TESTS:-no}
|
||||
|
||||
## Functions -----------------------------------------------------------------
|
||||
|
||||
function create_tests_clonemap {
|
||||
|
||||
# Prepare the clonemap for zuul-cloner to use
|
||||
cat > ${TESTING_HOME}/tests-clonemap.yaml << EOF
|
||||
clonemap:
|
||||
- name: openstack/openstack-ansible-tests
|
||||
dest: ${WORKING_DIR}/tests/common
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
## Main ----------------------------------------------------------------------
|
||||
|
||||
# If zuul-cloner is present, use it so that we
|
||||
# also include any dependent patches from the
|
||||
# tests repo noted in the commit message.
|
||||
if [[ -x /usr/zuul-env/bin/zuul-cloner ]]; then
|
||||
|
||||
# Prepare the clonemap for zuul-cloner to use
|
||||
create_tests_clonemap
|
||||
|
||||
# Execute the clone
|
||||
/usr/zuul-env/bin/zuul-cloner \
|
||||
--cache-dir /opt/git \
|
||||
--map ${TESTING_HOME}/tests-clonemap.yaml \
|
||||
git://git.openstack.org \
|
||||
openstack/openstack-ansible-tests
|
||||
|
||||
# Clean up the clonemap.
|
||||
rm -f ${TESTING_HOME}/tests-clonemap.yaml
|
||||
|
||||
# Alternatively, use a simple git-clone. We do
|
||||
# not re-clone if the directory exists already
|
||||
# to prevent overwriting any local changes which
|
||||
# may have been made.
|
||||
elif [[ ! -d tests/common ]]; 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} ${WORKING_DIR}/tests/common
|
||||
else
|
||||
git clone \
|
||||
https://git.openstack.org/openstack/openstack-ansible-tests \
|
||||
${WORKING_DIR}/tests/common
|
||||
fi
|
||||
fi
|
||||
|
||||
# If this test set includes an upgrade test, the
|
||||
# previous stable release tests repo must also be
|
||||
# cloned.
|
||||
# Note:
|
||||
# Dependent patches to the previous stable release
|
||||
# tests repo are not supported.
|
||||
if [[ "${CLONE_UPGRADE_TESTS}" == "yes" ]]; then
|
||||
if [[ ! -d "${WORKING_DIR}/tests/common/previous" ]]; then
|
||||
git clone -b stable/pike \
|
||||
https://git.openstack.org/openstack/openstack-ansible-tests \
|
||||
${WORKING_DIR}/tests/common/previous
|
||||
fi
|
||||
fi
|
22
tox.ini
22
tox.ini
|
@ -8,8 +8,6 @@ envlist = docs,linters,functional
|
|||
usedevelop = True
|
||||
install_command =
|
||||
pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
||||
deps =
|
||||
-r{toxinidir}/test-requirements.txt
|
||||
commands =
|
||||
/usr/bin/find . -type f -name "*.pyc" -delete
|
||||
passenv =
|
||||
|
@ -57,7 +55,6 @@ commands =
|
|||
|
||||
[testenv:pep8]
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||
bash -c "{toxinidir}/tests/common/test-pep8.sh"
|
||||
|
||||
|
||||
|
@ -70,45 +67,28 @@ ignore=F403
|
|||
|
||||
[testenv:bashate]
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||
bash -c "{toxinidir}/tests/common/test-bashate.sh"
|
||||
|
||||
|
||||
[testenv:ansible]
|
||||
deps =
|
||||
{[testenv]deps}
|
||||
-rhttps://git.openstack.org/cgit/openstack/openstack-ansible/plain/global-requirement-pins.txt
|
||||
-rhttps://git.openstack.org/cgit/openstack/openstack-ansible-tests/plain/test-ansible-deps.txt
|
||||
|
||||
|
||||
[testenv:ansible-syntax]
|
||||
deps =
|
||||
{[testenv:ansible]deps}
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||
bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh"
|
||||
|
||||
|
||||
[testenv:ansible-lint]
|
||||
deps =
|
||||
{[testenv:ansible]deps}
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||
bash -c "{toxinidir}/tests/common/test-ansible-lint.sh"
|
||||
|
||||
|
||||
[testenv:functional]
|
||||
deps =
|
||||
{[testenv:ansible]deps}
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
|
||||
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
|
||||
|
||||
[testenv:linters]
|
||||
deps =
|
||||
-r{toxinidir}/doc/requirements.txt
|
||||
{[testenv:ansible]deps}
|
||||
commands =
|
||||
bash -c "{toxinidir}/tests/common/test-ansible-env-prep.sh"
|
||||
{[testenv:pep8]commands}
|
||||
{[testenv:bashate]commands}
|
||||
{[testenv:ansible-lint]commands}
|
||||
|
|
Loading…
Reference in New Issue