91af45019b
This is a tox job to scan the RPM specfiles and do some initial sanity checks and use the OpenDev Spec-Cleaner tool, this is not a 'linter' per-se, but will output a diff of recommended changes for the specfile. Initial disable cleaning our default CentOS specfiles since we know they need work, we can enable this later. This uses the speclint script in starlingx/integ a proposed by the Depends-On. The recommended guildline for openSUSE is located here: https://en.opensuse.org/openSUSE:Specfile_guidelines Fix up fm-rest-api opensuse specfile Depends-On: https://review.opendev.org/664995 Change-Id: I46da780a667569a9dccedd551d955c983e9601cd Signed-off-by: Saul Wold <sgw@linux.intel.com>
132 lines
4.1 KiB
INI
132 lines
4.1 KiB
INI
[tox]
|
||
envlist = linters,pep8,rpm-packaging-lint
|
||
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:rpm-packaging-lint]
|
||
basepython = python3
|
||
setenv =
|
||
VIRTUAL_ENV={envdir}
|
||
LC_ALL=en_US.utf-8
|
||
install_command = pip install -U \
|
||
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt} \
|
||
{opts} {packages}
|
||
deps = -r{toxinidir}/test-requirements.txt
|
||
whitelist_externals = bash
|
||
commands =
|
||
bash -c 'if [ -d {toxinidir}/../integ ]; then integdir={toxinidir}/../integ; \
|
||
else integdir={toxinidir}/../stx-integ; \
|
||
fi; \
|
||
find . \
|
||
-not \( -type d -name .?\* -prune \) \
|
||
-not \( -type d -name centos -prune \) \
|
||
-type f -name \*.spec \
|
||
-print0 | xargs -0 $integdir/tools/spec-tools/speclint.sh'
|
||
|
||
[testenv:linters]
|
||
basepython = python3
|
||
whitelist_externals = bash
|
||
commands =
|
||
bash -c "find {toxinidir} \
|
||
-not \( -type d -name .?\* -prune \) \
|
||
-type f \
|
||
-not -name \*~ \
|
||
-not -name \*.md \
|
||
\( \
|
||
-name \*.sh \
|
||
-or -not -wholename \*/devstack/files/\* \
|
||
-wholename \*/devstack/\* \
|
||
\) \
|
||
-print0 | xargs -0 bashate -v -iE006"
|
||
bash -c "find {toxinidir} \
|
||
\( -name .tox -prune \) \
|
||
-o -type f -name '*.yaml' \
|
||
-print0 | xargs -0 yamllint -d '\{extends: relaxed, rules: \{line-length: \{max: 260\}\}\}'"
|
||
|
||
####
|
||
# Add flake8 as pep8 codestyle check.
|
||
[testenv:pep8]
|
||
basepython = python3
|
||
description =
|
||
Run style checks.
|
||
commands =
|
||
flake8
|
||
|
||
[flake8]
|
||
# H102 Apache 2.0 license header not found
|
||
# H104 File contains nothing but comments
|
||
# H105 Don't use author tags
|
||
# H301 one import per line
|
||
# H306 imports not in alphabetical order
|
||
# H401 docstring should not start with a space
|
||
# H403 multi line docstrings should end on a new line
|
||
# H404 multi line docstring should start without a leading new line
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
# H702 Argument to ... must be a string
|
||
# H903 Windows style line endings not allowed in code
|
||
# E123, E125 skipped as they are invalid PEP-8.
|
||
# E501 skipped because some of the code files include templates
|
||
# that end up quite wide
|
||
show-source = True
|
||
ignore = H102,H104,H105,H301,H306,H401,H403,H404,H405,H702,H903,E123,E125,E501
|
||
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,release-tag-*
|
||
# TODO: H106 Don’t put vim configuration in source files (off by default).
|
||
# H203 Use assertIs(Not)None to check for None (off by default).
|
||
# TODO: H904 Delay string interpolations at logging calls (off by default).
|
||
enable-extensions = H203
|
||
|
||
[testenv:venv]
|
||
basepython = python3
|
||
commands = {posargs}
|
||
|
||
[testenv:docs]
|
||
basepython = python3
|
||
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
|
||
whitelist_externals = rm
|
||
|
||
[testenv:releasenotes]
|
||
basepython = python3
|
||
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
|
||
whitelist_externals =
|
||
rm
|
||
reno
|
||
|
||
[testenv:newnote]
|
||
basepython = python3
|
||
# Re-use the releasenotes venv
|
||
envdir = {toxworkdir}/releasenotes
|
||
deps = -r{toxinidir}/doc/requirements.txt
|
||
commands = reno new {posargs}
|
||
|
||
[testenv:api-ref]
|
||
basepython = python3
|
||
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
|
||
whitelist_externals = rm
|
||
|
||
[testenv:build]
|
||
deps =
|
||
commands = {toxinidir}/devstack/build.sh
|
||
|
||
[testenv:functional]
|
||
basepython = python3
|
||
whitelist_externals = cat
|
||
commands = cat /etc/fm/fm.conf
|