distcloud/tox.ini
Hugo Brito 75cb349622 Create stx-distcloud-tox-black job
This commit introduces a new Zuul job, stx-distcloud-tox-black,
and a corresponding black_check tox environment to ensure Python
files are formatted with Black.

Initially, the black_check environment will check the formatting
of specified modules[1]. As modules are progressively formatted, the
configuration will be updated to enforce Black formatting on these
modules. During this transition, the job will only fail for modules
that have been updated to comply with Black formatting. Eventually,
the environment will be configured to check the entire project,
ensuring consistent code style across all files.

1: Check `modules` in run_black.py script.

Note: Once all modules are formatted, run_black.py will be deleted.

Test Plan:
PASS - Success in stx-distcloud-tox-black

Story: 2011149
Task: 50432

Change-Id: I8a8044d44b85679cf5e71106784c192ef343f5b6
Signed-off-by: Hugo Brito <hugo.brito@windriver.com>
2024-06-25 14:49:42 -03:00

79 lines
2.2 KiB
INI

[tox]
envlist = linters
minversion = 2.3
skipsdist = True
[testenv]
basepython = python3
install_command = pip install -v -v -v \
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
{opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
CURRENT_CFG_FILE={toxinidir}/.current.cfg
commands = find {toxinidir} -type f -not -path '{toxinidir}/.tox/*' -not -path '*/__pycache__/*' -name '*.py[c|o]' -delete
allowlist_externals =
rm
find
reno
[testenv:pep8]
description = Dummy environment to allow pep8 to be run in subdir tox
[testenv:pylint]
description = Dummy environment to allow pylint to be run in subdir tox
[testenv:black]
description = Dummy environment to allow black to be run in subdir tox
[testenv:docs]
deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
[testenv:releasenotes]
deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:newnote]
# Re-use the releasenotes venv
envdir = {toxworkdir}/releasenotes
deps = -r{toxinidir}/doc/requirements.txt
commands = reno --rel-notes-dir {toxinidir}/releasenotes new {posargs}
[testenv:api-ref]
deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[bandit]
# The following bandit tests are being skipped:
# B605: Test for starting a process with a shell
#
# Note: 'skips' entry cannot be split across multiple lines
#
skips = B605
exclude = tests
[testenv:bandit]
description = Bandit code scan for *.py files under config folder
deps = bandit
commands = bandit --ini tox.ini -r {toxinidir}/ -x '**/.tox/**,**/.eggs/**' -lll
[testenv:linters]
allowlist_externals = bash
deps = yamllint
commands =
bash -c "find {toxinidir} \
\( -name .tox -prune \) \
-o -type f -name '*.yaml' \
-print0 | xargs -r -0 yamllint"