mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00

The value of 10 does not really fit some of our world patterns and values up to 15 may be acceptable. Looking at some worlds, 14 seems to be achievable without too much work and reduces the noise in test output, making it more usable.
81 lines
2.6 KiB
YAML
81 lines
2.6 KiB
YAML
name: Analyze modified files
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "**.py"
|
|
push:
|
|
paths:
|
|
- "**.py"
|
|
|
|
env:
|
|
BASE: ${{ github.event.pull_request.base.sha }}
|
|
HEAD: ${{ github.event.pull_request.head.sha }}
|
|
BEFORE: ${{ github.event.before }}
|
|
AFTER: ${{ github.event.after }}
|
|
|
|
jobs:
|
|
flake8-or-mypy:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
task: [flake8, mypy]
|
|
|
|
name: ${{ matrix.task }}
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: "Determine modified files (pull_request)"
|
|
if: github.event_name == 'pull_request'
|
|
run: |
|
|
git fetch origin $BASE $HEAD
|
|
DIFF=$(git diff --diff-filter=d --name-only $BASE...$HEAD -- "*.py")
|
|
echo "modified files:"
|
|
echo "$DIFF"
|
|
echo "diff=${DIFF//$'\n'/$' '}" >> $GITHUB_ENV
|
|
|
|
- name: "Determine modified files (push)"
|
|
if: github.event_name == 'push' && github.event.before != '0000000000000000000000000000000000000000'
|
|
run: |
|
|
git fetch origin $BEFORE $AFTER
|
|
DIFF=$(git diff --diff-filter=d --name-only $BEFORE..$AFTER -- "*.py")
|
|
echo "modified files:"
|
|
echo "$DIFF"
|
|
echo "diff=${DIFF//$'\n'/$' '}" >> $GITHUB_ENV
|
|
|
|
- name: "Treat all files as modified (new branch)"
|
|
if: github.event_name == 'push' && github.event.before == '0000000000000000000000000000000000000000'
|
|
run: |
|
|
echo "diff=." >> $GITHUB_ENV
|
|
|
|
- uses: actions/setup-python@v4
|
|
if: env.diff != ''
|
|
with:
|
|
python-version: 3.8
|
|
|
|
- name: "Install dependencies"
|
|
if: env.diff != ''
|
|
run: |
|
|
python -m pip install --upgrade pip ${{ matrix.task }}
|
|
python ModuleUpdate.py --append "WebHostLib/requirements.txt" --force --yes
|
|
|
|
- name: "flake8: Stop the build if there are Python syntax errors or undefined names"
|
|
continue-on-error: false
|
|
if: env.diff != '' && matrix.task == 'flake8'
|
|
run: |
|
|
flake8 --count --select=E9,F63,F7,F82 --show-source --statistics ${{ env.diff }}
|
|
|
|
- name: "flake8: Lint modified files"
|
|
continue-on-error: true
|
|
if: env.diff != '' && matrix.task == 'flake8'
|
|
run: |
|
|
flake8 --count --max-complexity=14 --max-doc-length=120 --max-line-length=120 --statistics ${{ env.diff }}
|
|
|
|
- name: "mypy: Type check modified files"
|
|
continue-on-error: true
|
|
if: env.diff != '' && matrix.task == 'mypy'
|
|
run: |
|
|
mypy --follow-imports=silent --install-types --non-interactive --strict ${{ env.diff }}
|