0ff8707cba
This update is to ensure that the Zuul Canonical CI builds the charm before functional tests and ensure that that artifact is used for the functional tests. This is to try to ensure that the charm that gets landed to the charmhub is the same charm that was tested with. Change-Id: I17cb0cfe88be075d79d94edcdd2cea845bf78b8f Co-authored-by: Aurelien Lourot <aurelien.lourot@canonical.com>
151 lines
3.8 KiB
INI
151 lines
3.8 KiB
INI
# Classic charm (with zaza): ./tox.ini
|
|
# This file is managed centrally by release-tools and should not be modified
|
|
# within individual charm repos. See the 'global' dir contents for available
|
|
# choices of tox.ini for OpenStack Charms:
|
|
# https://github.com/openstack-charmers/release-tools
|
|
#
|
|
# TODO: Distill the func test requirements from the lint/unit test
|
|
# requirements. They are intertwined. Also, Zaza itself should specify
|
|
# all of its own requirements and if it doesn't, fix it there.
|
|
[tox]
|
|
envlist = pep8,py3
|
|
skipsdist = True
|
|
# NOTE: Avoid build/test env pollution by not enabling sitepackages.
|
|
sitepackages = False
|
|
# NOTE: Avoid false positives by not skipping missing interpreters.
|
|
skip_missing_interpreters = False
|
|
# NOTES:
|
|
# * We avoid the new dependency resolver by pinning pip < 20.3, see
|
|
# https://github.com/pypa/pip/issues/9187
|
|
# * Pinning dependencies requires tox >= 3.2.0, see
|
|
# https://tox.readthedocs.io/en/latest/config.html#conf-requires
|
|
# * It is also necessary to pin virtualenv as a newer virtualenv would still
|
|
# lead to fetching the latest pip in the func* tox targets, see
|
|
# https://stackoverflow.com/a/38133283
|
|
requires =
|
|
pip < 20.3
|
|
virtualenv < 20.0
|
|
setuptools < 50.0.0
|
|
|
|
# NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci
|
|
minversion = 3.18.0
|
|
|
|
[testenv]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONHASHSEED=0
|
|
CHARM_DIR={envdir}
|
|
install_command =
|
|
{toxinidir}/pip.sh install {opts} {packages}
|
|
commands = stestr run --slowest {posargs}
|
|
allowlist_externals =
|
|
charmcraft
|
|
rename.sh
|
|
passenv = HOME TERM CS_* OS_* TEST_*
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:build]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/build-requirements.txt
|
|
commands =
|
|
charmcraft clean
|
|
charmcraft -v build
|
|
{toxinidir}/rename.sh
|
|
|
|
[testenv:py35]
|
|
basepython = python3.5
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:py36]
|
|
basepython = python3.6
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:py37]
|
|
basepython = python3.7
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:py38]
|
|
basepython = python3.8
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:py39]
|
|
basepython = python3.9
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:py3]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
deps = flake8==3.9.2
|
|
charm-tools==2.8.3
|
|
commands = flake8 {posargs} hooks unit_tests tests actions lib files
|
|
charm-proof
|
|
|
|
[testenv:cover]
|
|
# Technique based heavily upon
|
|
# https://github.com/openstack/nova/blob/master/tox.ini
|
|
basepython = python3
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run
|
|
commands =
|
|
coverage erase
|
|
stestr run --slowest {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[coverage:run]
|
|
branch = True
|
|
concurrency = multiprocessing
|
|
parallel = True
|
|
source =
|
|
.
|
|
omit =
|
|
.tox/*
|
|
*/charmhelpers/*
|
|
unit_tests/*
|
|
|
|
[testenv:venv]
|
|
basepython = python3
|
|
commands = {posargs}
|
|
|
|
[testenv:func-noop]
|
|
basepython = python3
|
|
commands =
|
|
functest-run-suite --help
|
|
|
|
[testenv:func]
|
|
basepython = python3
|
|
commands =
|
|
functest-run-suite --keep-model
|
|
|
|
[testenv:func-smoke]
|
|
basepython = python3
|
|
commands =
|
|
functest-run-suite --keep-model --smoke
|
|
|
|
[testenv:func-dev]
|
|
basepython = python3
|
|
commands =
|
|
functest-run-suite --keep-model --dev
|
|
|
|
[testenv:func-target]
|
|
basepython = python3
|
|
commands =
|
|
functest-run-suite --keep-model --bundle {posargs}
|
|
|
|
[flake8]
|
|
ignore = E402,E226,W503,W504
|
|
exclude = */charmhelpers
|