我正在尝试使用 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