From e587e8e36a0279674882f4b8bdba81ed1b10e1a6 Mon Sep 17 00:00:00 2001 From: cclauss Date: Tue, 16 Oct 2018 07:18:00 +0200 Subject: [PATCH] Travis CI: Use flake8 to find Python syntax errors or undefined names CLA: trivial In Travis CI, add a Python linting step that runs flake8 tests in Travis CI to find syntax errors and undefined names. (http://flake8.pycqa.org) __E901,E999,F821,F822,F823__ are the "_showstopper_" flake8 issues that can halt the runtime with a SyntaxError, NameError, etc. Most other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety. * F821: undefined name `name` * F822: undefined name `name` in `__all__` * F823: local variable name referenced before assignment * E901: SyntaxError or IndentationError * E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree Reviewed-by: Paul Dale Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/7410) (cherry picked from commit 2a6f57bc098cdfa6320189f2725337c7f74a052e) --- .travis.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.travis.yml b/.travis.yml index 764da2885e..0124368fd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -120,6 +120,18 @@ matrix: - gcc-mingw-w64 compiler: x86_64-w64-mingw32-gcc env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic" + - os: linux + language: python + python: 3.7 + dist: xenial # required for Python 3.7 (travis-ci/travis-ci#9069) + sudo: required # required for Python 3.7 (travis-ci/travis-ci#9069) + install: pip install flake8 + before_script: + # stop the build if there are Python syntax errors or undefined names + - flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + script: true exclude: - os: linux compiler: clang -- 2.25.1