需要使用 Github actions 中的 find 捕获 pylint 命令的退出代码

需要使用 Github actions 中的 find 捕获 pylint 命令的退出代码

我正在尝试使用 pylint 实现 python linter。但我正在获取每个 python 文件的分数,并显示提高分数的建议,但如果我的 pylint 分数低于 6.0,我也希望终止 GitHub 操作作业,但目前它并没有让我的工作失败。我有办法退出代码,但我无法设置相同的条件。我想对所有 python 文件进行 lint,但此代码在对单个 python 文件进行 lint 后退出。是否可以进行检查,如果退出代码类似于错误,则应该终止,否则必须继续进行 linting。

Pylint 对于错误和警告有不同的退出代码,但我无法为此设置条件:pylint 退出代码

这是我使用过的工作流程:

--- 

name: Python Notebooks Linting
on:
  push:
    branches:
      - 'main'
  repository_dispatch:
#   types: [python-lint] test

jobs:
  linting:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the code
        uses: actions/checkout@v2
      - name: Install dependencies
        run: |
         python -m pip install --upgrade pip
            pip install pylint
            pip install umsgpack
            pip install cryptography
            pip install pylint-fail-under
      - name: pylint version
        run: pylint --version
      - name: Analysing the code with pylint
        run: |
              set -e
              for file in **/*.py; do pylint "$file"; done

但是此代码在对单个文件进行 linting 后退出我想设置一个条件,如果退出代码是特定数字,则 linting 应退出。我该如何实施?

答案1

我用了不同的方式来实现这个需求。现在,如果我的 python 存储库中存在的单个文件的 pylint 分数小于 6.0,则 GitHub 工作流程将失败。通过在 for 循环中使用 find 命令,如果返回与错误相对应的退出代码,则可以终止作业。

  - name: Lints each python file and fails if pylint score is less than 6.0
    run: |
          for file in $(find -name '*.py')
          do
            pylint --disable=E0401,W0611 "$file" --fail-under=6.0;
          done

参考 :使用 Github 工作流程检查 python 文件

相关内容