tox: make it possible to run pep8 on current patch only
This makes tox use a simple wrapper around flake8 like Nova, which can be told to restrict the check to only files changed in the current command. This can be invoked in a simple manner with 'tox -epep8 -- -HEAD'. Since most commits only touch a handful of files, this will usually be far faster than checking all source files. To check an entire branch for bisectability it can be automated via git rebase -i master -x 'tox -epep8 -- -HEAD' Change-Id: I75b1cfe3198b1217f8b25877714a4af47ae7069f
This commit is contained in:
parent
0371f6678d
commit
29b37065d7
20
tools/flake8wrap.sh
Executable file
20
tools/flake8wrap.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# A simple wrapper around flake8 which makes it possible
|
||||||
|
# to ask it to only verify files changed in the current
|
||||||
|
# git HEAD patch.
|
||||||
|
#
|
||||||
|
# Intended to be invoked via tox:
|
||||||
|
#
|
||||||
|
# tox -epep8 -- -HEAD
|
||||||
|
#
|
||||||
|
|
||||||
|
if test "x$1" = "x-HEAD" ; then
|
||||||
|
shift
|
||||||
|
files=$(git diff --name-only HEAD~1 | tr '\n' ' ')
|
||||||
|
echo "Running flake8 on ${files}"
|
||||||
|
diff -u --from-file /dev/null ${files} | flake8 --diff "$@"
|
||||||
|
else
|
||||||
|
echo "Running flake8 on all files"
|
||||||
|
exec flake8 "$@"
|
||||||
|
fi
|
2
tox.ini
2
tox.ini
@ -25,7 +25,7 @@ commands = {toxinidir}/tools/states_to_dot.py -f {toxinidir}/doc/source/images/s
|
|||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
whitelist_externals = bash
|
whitelist_externals = bash
|
||||||
commands =
|
commands =
|
||||||
flake8 {posargs}
|
bash tools/flake8wrap.sh {posargs}
|
||||||
# Run bashate during pep8 runs to ensure violations are caught by
|
# Run bashate during pep8 runs to ensure violations are caught by
|
||||||
# the check and gate queues.
|
# the check and gate queues.
|
||||||
{toxinidir}/tools/run_bashate.sh {toxinidir}/devstack
|
{toxinidir}/tools/run_bashate.sh {toxinidir}/devstack
|
||||||
|
Loading…
Reference in New Issue
Block a user