pylint를 사용하여 Python linter를 구현하려고 합니다. 하지만 각 Python 파일에 대한 점수를 얻고 점수를 향상하기 위한 제안을 표시하고 있습니다. 또한 pylint 점수가 6.0 미만이면 GitHub Actions 작업을 종료하고 싶지만 현재는 작업에 실패하지 않습니다. 코드를 종료할 수 있는 방법이 있지만 동일한 조건을 설정할 수는 없습니다. 모든 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