project-config/tox.ini
Andreas Jaeger 7114e79485 Check ACLs for all namespaces
Remove hardcoded list of namespaces with iterating over all directories
in the check of valid ACLs.

Remove parameter, we don't need to pass it in.

Be more verbose and report directories scanned and number of ACL files
read.

Change-Id: I4193ac59b431d31f3ce835c93950745e5b742418
2019-05-31 21:53:03 +02:00

142 lines
4.2 KiB
INI

[tox]
minversion = 1.6
envlist = linters,gerrit,grafyaml
skipsdist = True
[testenv]
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
basepython = python3
[testenv:linters]
whitelist_externals = bash
setenv =
ANSIBLE_LIBRARY= {envsitepackagesdir}/zuul/ansible/base/library
ANSIBLE_ACTION_PLUGINS = {envsitepackagesdir}/zuul/ansible/base/actiongeneral
# NOTE(pabelanger): if you'd like to run tox -elinters locally,
# you'll need to export ANSIBLE_ROLES_PATH pointing to the required
# repos.
#
# We take a guess that zuul-jobs and openstack-zuul-jobs will be
# checked out in the directory above us (i.e. alongside
# project-config). You may need to override this. Make sure
# they're up to date too!
#
# see openstack-zuul-jobs-linters job for more information.
ANSIBLE_ROLES_PATH={env:ANSIBLE_ROLES_PATH:../zuul-jobs/roles:../openstack-zuul-jobs/roles:roles}
# Add dependencies here since other jobs use python2 and zuul requires
# python3.
deps =
# Zuul is required to supply the zuul ansible modules for ansible-lint
zuul
# Unfortunately pip doesn't do actual dependency resolution, so
# we need to manually ansible at the top level to the same as
# zuul requirements.txt
ansible>=2.5.1,<2.6
ansible-lint<4
hacking>=1.1,<1.2
bashate>=0.2
commands =
{toxinidir}/tools/run-bashate.sh
flake8
# Run some policy checks on zuul.d/projects.yaml
{toxinidir}/tools/zuul-projects-checks.py
# Ansible lint
# [ANSIBLE0012] Commands should not change things if nothing needs doing
bash -c "find playbooks -type f -regex '.*.ya?ml' -print0 | \
xargs -t -n1 -0 ansible-lint -xANSIBLE0012"
bash -c 'find roles -maxdepth 1 -mindepth 1 -type d -printf "%p/\n" | \
xargs -t -n1 ansible-lint -xANSIBLE0012'
# Ansible Syntax Check
bash -c "find playbooks -type f -regex '.*.ya?ml' -exec \
ansible-playbook --syntax-check -i {toxinidir}/tests/inventory \
-e @tests/vars.yaml \{\} + > /dev/null"
# Make sure site-variables at least parses
python -c 'import yaml ; yaml.load(open("zuul/site-variables.yaml", "r"))'
[testenv:gerrit]
deps =
PyYAML
ruamel.yaml
GitPython
commands =
{toxinidir}/tools/check_valid_gerrit_projects.py gerrit/projects.yaml gerrit/acls zuul/main.yaml
{toxinidir}/tools/check_projects_yaml_alphabetized.sh gerrit/projects.yaml
{toxinidir}/tools/check_valid_gerrit_config.sh
{toxinidir}/tools/check_gerrit_projects_changed.sh
[testenv:venv]
commands = {posargs}
[testenv:docs]
commands = python setup.py build_sphinx
[testenv:irc]
deps =
PyYAML
ruamel.yaml
irc
commands =
{toxinidir}/tools/check_irc_access.py -l accessbot/channels.yaml openstackinfra
{toxinidir}/tools/irc_tests.py
{toxinidir}/tools/check-channels-yaml.sh
[flake8]
show-source = True
exclude = .tox,.test
# These are ignored intentionally in openstack-infra projects;
# please don't submit patches that solely correct them or enable them.
ignore = E125,E129,E402,H,W503
[testenv:grafyaml]
deps =
{env:GRAFYAML_SRC:git+https://opendev.org/opendev/grafyaml#egg=grafyaml}
basepython = python2.7
commands = grafana-dashboard validate grafana
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
deps = bindep
commands = bindep test
[testenv:infra-docs]
deps =
Jinja2
PyYAML
commands = {toxinidir}/docs-site/generate_infra_index.py {toxinidir}/docs-site/infra-documents.yaml
[testenv:specs]
deps =
Jinja2
PyYAML
commands = {toxinidir}/specs/generate_specs_site.py {toxinidir}/specs/specs.yaml
[testenv:dib]
deps =
diskimage-builder
changedir = {toxinidir}/nodepool
commands = env ELEMENTS_DIR=elements dib-lint
[testenv:nodepool]
deps = nodepool
commands =
{toxinidir}/tools/nodepool-validate.sh
[testenv:add-projects-to-main]
whitelist_externals =
git
deps =
ruamel.yaml
commands =
python tools/add-projects-to-main.py
git diff-files --quiet
[testenv:normalize-projects-yaml]
deps =
ruamel.yaml
commands =
{toxinidir}/tools/normalize_projects_yaml.py