Fix linters #108
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linters-PR | |
on: | |
push: | |
branches-ignore: | |
- 'master' | |
pull_request: | |
branches-ignore: | |
- 'master' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
pip install pylint | |
pip install mypy | |
pip install wemake-python-styleguide | |
pip install black | |
pip install types-xmltodict | |
pip install types-requests | |
pip install pytest | |
pip install faker | |
- name: Add 'testrail_api_reporter' to PYTHONPATH | |
run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)/testrail_api_reporter:." >> $GITHUB_ENV | |
- name: Analysing the code with pylint | |
id: pylint | |
continue-on-error: true | |
run: | | |
changed_files=$(git diff --diff-filter=d --name-only $(git merge-base HEAD origin/master) HEAD | grep '\.py$') || true | |
echo $changed_files | |
if [ -n "$changed_files" ]; then | |
pylint $changed_files | |
else | |
echo "No files changed, passing by" | |
exit 0 | |
fi | |
- name: Analysing the code with mypy | |
id: mypy | |
continue-on-error: true | |
run: | | |
changed_files=$(git diff --diff-filter=d --name-only $(git merge-base HEAD origin/master) HEAD | grep '\.py$') || true | |
echo $changed_files | |
if [ -n "$changed_files" ]; then | |
mkdir -p .mypy_cache | |
mypy $changed_files --install-types --non-interactive --ignore-missing-imports | |
else | |
echo "No files changed, passing by" | |
exit 0 | |
fi | |
- name: Check code with flake8 | |
id: flake8 | |
continue-on-error: true | |
run: | | |
changed_files=$(git diff --diff-filter=d --name-only $(git merge-base HEAD origin/master) HEAD | grep '\.py$') || true | |
echo $changed_files | |
if [ -n "$changed_files" ]; then | |
flake8 $changed_files | |
else | |
echo "No files changed, passing by" | |
exit 0 | |
fi | |
- name: Check code with Black | |
id: black | |
continue-on-error: true | |
run: | | |
changed_files=$(git diff --diff-filter=d --name-only $(git merge-base HEAD origin/master) HEAD | grep '\.py$') || true | |
echo $changed_files | |
if [ -n "$changed_files" ]; then | |
black --diff --check --color $changed_files | |
else | |
echo "No files changed, passing by" | |
exit 0 | |
fi | |
- name: Check runner state | |
run: | | |
failed_steps=() | |
if [[ "${{ steps.pylint.outcome }}" == "failure" ]]; then failed_steps+=("Pylint"); fi | |
if [[ "${{ steps.black.outcome }}" == "failure" ]]; then failed_steps+=("Black"); fi | |
if [[ "${{ steps.mypy.outcome }}" == "failure" ]]; then failed_steps+=("Mypy"); fi | |
if [ ${#failed_steps[@]} -ne 0 ]; then | |
echo "Failed: ${failed_steps[*]}" | |
exit 1 | |
else | |
echo "All passed, well done, bro!" | |
fi |