---
# This action is centrally managed in https://github.com/<organization>/.github/
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in
# the above-mentioned repo.

# Lint python files with flake8.

name: flake8

on:
  pull_request:
    branches: [master]
    types: [opened, synchronize, reopened]

concurrency:
  group: "${{ github.workflow }}-${{ github.ref }}"
  cancel-in-progress: true

jobs:
  flake8:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5  # https://github.com/actions/setup-python
        with:
          python-version: '3.10'

      - name: Install dependencies
        run: |
          # pin flake8 before v6.0.0 due to removal of support for type comments (required for Python 2.7 type hints)
          python -m pip install --upgrade pip setuptools "flake8<6"

      - name: Test with flake8
        run: |
          python -m flake8 --verbose
