name: Code formatting

# see: https://help.github.com/en/actions/reference/events-that-trigger-workflows
on:  # Trigger the workflow on push or pull request, but only for the master branch
  push: {}
  pull_request:
    branches: [master]

jobs:
  pep8-check-flake8:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-python@v2
        with:
          python-version: 3.7
      - name: Install dependencies
        run: |
          pip install flake8
          pip --version
        shell: bash
      - name: PEP8
        run: flake8 .

  pre-commit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2

      - name: set PY
        run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
      - uses: actions/cache@v2
        with:
          path: ~/.cache/pre-commit
          key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}

      - uses: pre-commit/action@v2.0.2
        # this action also provides an additional behaviour when used in private repositories
        # when configured with a github token, the action will push back fixes to the pull request branch
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

  #typing-check-mypy:
  #  runs-on: ubuntu-20.04
  #  steps:
  #    - uses: actions/checkout@master
  #    - uses: actions/setup-python@v2
  #      with:
  #        python-version: 3.8
  #    - name: Install mypy
  #      run: |
  #        pip install mypy
  #        pip list
  #    - name: mypy
  #      run: mypy
