Travis-CI:不要因为 linter 警告而导致构建失败
Travis-CI: Do not fail build because of linter warnings
我有一个旧的 python 项目,我正在尝试使用 flake8 逐步清理该项目(以警告 PEP8 问题)。我使用 Travis 进行持续集成,并希望我的构建在任何单元测试失败时失败。但是,我不希望我的构建仅仅因为 flake8 产生了警告而失败(例如,关于像尾随白色 space 这样的小事)。
如何配置 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 .
Flake8 警告示例:
./meta-db/file_system.py:103:80: E501 line too long (108 > 79 characters)
./meta-db/file_system.py:106:68: W291 trailing whitespace
向 flake8 添加 --exit-zero 标志允许显示 lint warnings/errors 而不会导致 Travis 构建失败。
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
一旦最后一条命令停止打印错误,您就可以 trim --exit-zero
我有一个旧的 python 项目,我正在尝试使用 flake8 逐步清理该项目(以警告 PEP8 问题)。我使用 Travis 进行持续集成,并希望我的构建在任何单元测试失败时失败。但是,我不希望我的构建仅仅因为 flake8 产生了警告而失败(例如,关于像尾随白色 space 这样的小事)。
如何配置 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 .
Flake8 警告示例:
./meta-db/file_system.py:103:80: E501 line too long (108 > 79 characters)
./meta-db/file_system.py:106:68: W291 trailing whitespace
向 flake8 添加 --exit-zero 标志允许显示 lint warnings/errors 而不会导致 Travis 构建失败。
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
一旦最后一条命令停止打印错误,您就可以 trim --exit-zero