【问题标题】:Travis-CI: Do not fail build because of linter warningsTravis-CI:不要因为 linter 警告而导致构建失败
【发布时间】:2018-12-29 01:53:48
【问题描述】:

我有一个旧的 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 .

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

【问题讨论】:

    标签: python unit-testing travis-ci lint flake8


    【解决方案1】:

    向 flake8 添加 --exit-zero 标志可以显示 lint 警告/错误,而不会导致 Travis 构建失败。

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

    【讨论】:

      【解决方案2】:

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

      script:
          - python -m unittest discover -v
          - git diff -U0 $TRAVIS_COMMIT_RANGE | flake8 --diff
          - flake8 . --exit-zero
      

      一旦最后一个命令停止打印错误,您就可以修剪--exit-zero

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-03
        相关资源
        最近更新 更多