
For local runs of testenv:linters we cache all the external Ansible playbooks and roles ansible-lint will need to reference in order to validate content in this repository. We build that cache in a .cache directory, but not everything in the cached repositories is suitable for flake8 checking, so add that directory to its exclusion list. Also add the same directory to .gitignore, so Git will stop complaining about it being untracked. Change-Id: I1f740edd75cc7f6ba0f4a73f0a409a620b437b16
125 lines
3.6 KiB
INI
125 lines
3.6 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 =
|
|
# NOTE(ianw) : In the gate job openstack-zuul-jobs-linters this is
|
|
# overridden to the Zuul checkouts of the projects. Locally,
|
|
# tools/ansible-lint-roles-cache.sh will populate these for the
|
|
# linter.
|
|
ANSIBLE_ROLES_PATH={env:ANSIBLE_ROLES_PATH:{toxinidir}/.cache/ansible-lint/opendev/base-jobs/roles:{toxinidir}/.cache/ansible-lint/opendev/system-config/roles:{toxinidir}/.cache/ansible-lint/zuul/zuul-jobs/roles:{toxinidir}/.cache/ansible-lint/openstack/openstack-zuul-jobs/roles}
|
|
|
|
# Add dependencies here since other jobs use python2 and zuul requires
|
|
# python3.
|
|
deps =
|
|
# ansible-lint brings in the latest version of ansible, but we
|
|
# keep this in sync with what Zuul uses so we don't allow though
|
|
# things from a later ansible that would actually fail in
|
|
# production.
|
|
ansible>=5,<6
|
|
ansible-lint>=6.3.0,!=6.5.0,!=6.5.1,<7.0.0
|
|
hacking>=4.0.0,<5.0.0
|
|
bashate>=0.2
|
|
commands =
|
|
{toxinidir}/tools/ansible-lint-roles-cache.sh
|
|
{toxinidir}/tools/run-bashate.sh
|
|
flake8
|
|
# Run some policy checks on zuul.d/projects.yaml
|
|
{toxinidir}/tools/zuul-projects-checks.py
|
|
# Ansible lint
|
|
bash -c "find playbooks -type f -regex '.*.ya?ml' -print0 | \
|
|
xargs -t -0 ansible-lint"
|
|
bash -c "find roles -maxdepth 1 -mindepth 1 -type d -printf '%p/\n' | \
|
|
xargs -t ansible-lint"
|
|
# Make sure site-variables at least parses
|
|
python -c 'import yaml ; yaml.safe_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
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:irc]
|
|
deps =
|
|
PyYAML
|
|
ruamel.yaml
|
|
irc
|
|
commands =
|
|
{toxinidir}/tools/check_irc_access.py -l accessbot/channels.yaml opendevaccess
|
|
{toxinidir}/tools/irc_tests.py
|
|
{toxinidir}/tools/check-channels-yaml.sh
|
|
|
|
[flake8]
|
|
show-source = True
|
|
exclude = .tox,.test,.cache
|
|
# 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}
|
|
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
|
|
yamllint
|
|
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
|