 49ecd4b9c1
			
		
	
	49ecd4b9c1
	
	
	
		
			
			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 }}
 |