2db422f0b8
We ran into issues getting ansible-lint to run on Noble without updating everything to current ish versions due to Python 3.12 compatibility issues. Updating everything in this way created a bunch of new lint errors we need to fix so we worked around the problem previously by pinning back to Jammy. Now we move the job back to Noble (the default Nodeset) and update the tooling and fix the linter errors. This should allow us to move forward in a productive manner on modern platforms. The linter errors we fix include: * Naming every play * Ensuring every play name starts with a capital letter * Using fully qualified collection names for action modules (archive, git_config, and synchronize) * Quoting octal file modes Change-Id: I96560c5ce2a5af39d39b3fc339862932a856bd13
157 lines
4.5 KiB
INI
157 lines
4.5 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]
|
|
allowlist_externals =
|
|
bash
|
|
{toxinidir}/tools/ansible-lint-roles-cache.sh
|
|
{toxinidir}/tools/run-bashate.sh
|
|
{toxinidir}/tools/zuul-projects-checks.py
|
|
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>=8,<9
|
|
ansible-lint<25.0.0
|
|
hacking>=7.0.0,<8.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]
|
|
allowlist_externals =
|
|
{toxinidir}/tools/check_valid_gerrit_projects.py
|
|
{toxinidir}/tools/check_projects_yaml_alphabetized.sh
|
|
{toxinidir}/tools/check_valid_gerrit_config.sh
|
|
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]
|
|
allowlist_externals =
|
|
{toxinidir}/tools/check_irc_access.py
|
|
{toxinidir}/tools/irc_tests.py
|
|
{toxinidir}/tools/check-channels-yaml.sh
|
|
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]
|
|
allowlist_externals =
|
|
{toxinidir}/docs-site/generate_infra_index.py
|
|
deps =
|
|
Jinja2
|
|
PyYAML
|
|
commands = {toxinidir}/docs-site/generate_infra_index.py {toxinidir}/docs-site/infra-documents.yaml
|
|
|
|
[testenv:specs]
|
|
allowlist_externals =
|
|
{toxinidir}/specs/generate_specs_site.py
|
|
deps =
|
|
Jinja2
|
|
PyYAML
|
|
commands = {toxinidir}/specs/generate_specs_site.py {toxinidir}/specs/specs.yaml
|
|
|
|
[testenv:dib]
|
|
allowlist_externals =
|
|
env
|
|
deps =
|
|
diskimage-builder
|
|
yamllint
|
|
changedir = {toxinidir}/nodepool
|
|
commands = env ELEMENTS_DIR=elements dib-lint
|
|
|
|
[testenv:nodepool]
|
|
allowlist_externals =
|
|
{toxinidir}/tools/nodepool-validate.sh
|
|
deps = nodepool
|
|
commands =
|
|
{toxinidir}/tools/nodepool-validate.sh
|
|
|
|
[testenv:add-projects-to-main]
|
|
allowlist_externals =
|
|
git
|
|
deps =
|
|
ruamel.yaml
|
|
commands =
|
|
python tools/add-projects-to-main.py
|
|
git diff-files --quiet
|
|
|
|
[testenv:normalize-gerrit-acl]
|
|
commands =
|
|
python {toxinidir}/tools/normalize_acl.py {posargs} apply
|
|
|
|
[testenv:normalize-projects-yaml]
|
|
allowlist_externals =
|
|
{toxinidir}/tools/normalize_projects_yaml.py
|
|
deps =
|
|
ruamel.yaml
|
|
commands =
|
|
{toxinidir}/tools/normalize_projects_yaml.py
|