【问题标题】:Gitlab CI exit code 1 using with flake8使用 flake8 的 Gitlab CI 退出代码 1
【发布时间】:2021-11-11 11:09:25
【问题描述】:

我不明白为什么 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/

【问题讨论】:

    标签: python-3.x gitlab-ci flake8


    【解决方案1】:

    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***

    【讨论】:

      猜你喜欢
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2021-04-04
      • 2021-07-27
      • 1970-01-01
      • 2022-01-25
      • 2021-11-14
      相关资源
      最近更新 更多