python-3.x - 使用 flake8 的 Gitlab CI 退出代码 1
问题描述
我不明白为什么 Job 在 gitlab CI 中以退出代码 1 结束。如果我不使用 flake8(f.ex 运行脚本行echo "hello world" > $FOLDER_NAME/my_test.txt
)一切都很好。但我看到 flake8 在目录中发现错误:
...
$ mkdir -p $FOLDER_NAME
$ flake8 --max-line-length=120 --ignore=W605,W504 --tee --output-file=$FOLDER_NAME/$LOG_NAME $CHECKING_FOLDER
./framework/tests/test_5_helper.py:30:30: W292 no newline at end of file
./framework/tests/test_1_start.py:2:1: F401 'pprint.pprint' imported but unused
Cleaning up file based variables
00:00
ERROR: Job failed: exit code 1
yml 文件:
stages:
- check
pep8_check:
stage: check
image: python:3.8-alpine
variables:
FOLDER_NAME: 'logs'
LOG_NAME: 'linter.log'
CHECKING_FOLDER: './framework/tests'
when: always
before_script:
- python -m pip install --upgrade pip
- pip install flake8
- export
- mkdir -p $FOLDER_NAME
script:
- flake8 --max-line-length=120 --ignore=W605,W504 --tee --output-file=$FOLDER_NAME/$LOG_NAME $CHECKING_FOLDER
artifacts:
expire_in: 7 days
paths:
- $FOLDER_NAME/
解决方案
Flake8 发现 2 个错误,因此以 1 退出,这使得 GitLab 管道失败。
你有几个选择:
- 如果您希望 GitLab 忽略
flake8
可能发现的任何错误,则只需添加参数--exit-zero
,这将flake8
退出,0
从而使 GitLab 管道成功 - 如果您想从输出中忽略这些特定错误:
./framework/tests/test_5_helper.py:30:30: W292 no newline at end of file
./framework/tests/test_1_start.py:2:1: F401 'pprint.pprint' imported but unused
那么您只需像为其他人所做的那样将它们添加到忽略列表中:
把这个改成--ignore=W605,W504
这个--ignore=W605,W504,W292,F401
- 您还可以去“修复/修改/更改”您的代码,以便
flake8
在解析源代码时停止标记这些行
无论如何,阅读帮助flake8 --help
可能会提供更多关于如何解决这些极端情况的想法,具体取决于您想要实现的目标。
另请参阅此处的错误/警告/违规代码列表E***
, W***
, F***
:
推荐阅读
- javascript - 用于显示十六进制数字的控制台设置
- c# - 无法通过脚本更改导入的搅拌机对象材质颜色
- r - 在r中制作求和函数
- debian - 如何通过终端从 conda 在 Debian 9 上运行 Jupyter notebook?(jupyter 笔记本不工作)
- json - Swift 4 - 发送 application/x-www-form-urlencoded JSON
- powerbi - 将彭博数据导入 Power BI
- php - Laravel 雄辩的关系 3 个表格
- vim - 不是编辑器命令:RopeGotoDefinition
- symfony - 安装后 symfony 4 路由问题
- c# - 在 ASP.NET Core 标识中编辑用户