root/tox.ini
Don Penney d184c69b7c Update tox.ini bashate to test all bash scripts
Currently, the tox.ini file is only running bashate against files that
end in a .sh extension. However, many of the build tools do not have
an extension, and therefore don't have bashate executed against them.
This commit enhances the tox command to search for shell scripts
regardless of file extension.

The bashate ignore list has been updated to ignore all existing
warnings. Future updates can perform cleanup to address the
outstanding issues and remove items from the ignore list one by one.

The original check of .sh is maintained with a smaller ignore list, to
ensure new issues are not introduced.

Change-Id: I07e8ac83c6ed3d81e7bfad19da1eee1747d60802
Signed-off-by: Don Penney <don.penney@windriver.com>
2020-02-12 19:20:43 +00:00

60 lines
1.8 KiB
INI

[tox]
envlist = linters
minversion = 2.3
skipsdist = True
[testenv]
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps = -r{toxinidir}/test-requirements.txt
[testenv:linters]
basepython = python3
whitelist_externals = bash
# Bashate warnings
# E001 Trailing Whitespace
# E002 Tab indents
# E003 Indent not multiple of 4
# E006 Line too long
# E010 The "do" should be on same line as for
# E011 Then keyword is not on same line as if or elif keyword
# E020 Function declaration not in format ^function name {$
# E042 local declaration hides errors
commands =
bash -c "find {toxinidir}/build-tools \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
-name \*.sh \
-print0 | xargs --no-run-if-empty -0 bashate -v -e 'E*' -i E006,E010"
bash -c "find {toxinidir}/build-tools \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
\( -exec bash -c 'file \{\} | grep -q shell' \; \
-a ! -name '*.sh' \) \
-print0 | xargs --no-run-if-empty -0 bashate -v -e 'E*' -i E001,E002,E003,E006,E010,E011,E020,E042"
bash -c "find {toxinidir} \
\( -name stx -prune \) \
-o \( -name .tox -prune \) \
-o -type f -name '*.yaml' \
-print0 | xargs -0 yamllint"
[testenv:pep8]
basepython = python3
usedevelop = False
skip_install = True
deps =
pep8
commands =
pep8
[testenv:venv]
basepython = python3
commands = {posargs}