Travis-CI: не сбой сборки из-за предупреждений линтера - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть старый проект на 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

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Вы можете сделать так, чтобы flake8 проверял только самые последние коммиты, так что вы проверяете, соответствуют ли последние изменения, а не весь проект.Если вы уверены, например,

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

Как только последняя команда прекратит печатать ошибки, вы можете обрезать --exit-zero

0 голосов
/ 29 декабря 2018

Добавление флага --exit-zero к flake8 позволяет отображать предупреждения / ошибки lint без сбоев сборки Travis.

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