name: Linting

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.8]

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
    - name: pycodestyle
      run: |
        pip install pycodestyle --upgrade --quiet
        pycodestyle monty
    - name: mypy
      run: |
        pip install mypy --upgrade --quiet
        mypy monty
    - name: flake8
      run: |
        pip install flake8 --upgrade --quiet
        flake8 --count --show-source --statistics monty
        # exit-zero treats all errors as warnings.
        flake8 --count --exit-zero --max-complexity=20 --statistics monty
    - name: pydocstyle
      run: |
        pip install pydocstyle --upgrade --quiet
        pydocstyle --count monty
    - name: pylint
      run: |
        pip install pylint --upgrade --quiet
        pylint monty