Python Travis CI:不要因为linter警告而导致构建失败

Python Travis CI:不要因为linter警告而导致构建失败,python,unit-testing,travis-ci,lint,flake8,Python,Unit Testing,Travis Ci,Lint,Flake8,我有一个旧的python项目,我正在尝试使用flake8逐步清理它(以警告PEP8问题)。我使用Travis进行持续集成,如果任何单元测试失败,我希望我的构建失败。然而,我不希望我的构建失败仅仅因为flake8产生了一个警告(例如,关于一些次要的东西,比如拖尾空白) 如何配置Travis以输出flake8警告(以便我有时间解决它们),而不会导致生成失败 我的.travis.yml如下: language: python python: - "3.6" install: - pip in

我有一个旧的python项目,我正在尝试使用flake8逐步清理它(以警告PEP8问题)。我使用Travis进行持续集成,如果任何单元测试失败,我希望我的构建失败。然而,我不希望我的构建失败仅仅因为flake8产生了一个警告(例如,关于一些次要的东西,比如拖尾空白)

如何配置Travis以输出flake8警告(以便我有时间解决它们),而不会导致生成失败

我的.travis.yml如下:

language: python
python:
  - "3.6"

install:
  - pip install -r requirements.txt
  - pip install flake8

script:
  - python -m unittest discover -v
  - flake8 .
示例8警告:

./meta-db/file_system.py:103:80: E501 line too long (108 > 79 characters) 
./meta-db/file_system.py:106:68: W291 trailing whitespace
将--exit zero标志添加到flake8允许在不使Travis构建失败的情况下显示lint警告/错误

script:
  - python -m unittest discover -v
  - flake8 . --exit-zero # Exit with status code "0" even if there are errors.

您可以让flake8只检查最近的提交,以便验证最近的更改是否符合要求,而不是整个项目。一旦你有信心,例如

script:
    - python -m unittest discover -v
    - git diff -U0 $TRAVIS_COMMIT_RANGE | flake8 --diff
    - flake8 . --exit-zero
一旦最后一个命令停止打印错误,您就可以修剪
--exit zero