name: mypy on: # Trigger the workflow on push or pull request, # but only for the main branch push: branches: - main paths: - '**/*.py' - '.github/workflows/mypy.yaml' - 'tools/mypy.sh' - 'pyproject.toml' pull_request: branches: - main # This workflow is only relevant when one of the following files changes. # However, we have github configured to expect and require this workflow # to run and pass before github with auto-merge a pull request. Until github # allows more flexible auto-merge policy, we can just run this on every PR. # It doesn't take that long to run, anyway. #paths: # - '**/*.py' # - '.github/workflows/mypy.yaml' # - 'tools/mypy.sh' # - 'pyproject.toml' jobs: mypy: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install mypy==1.11.1 pip install types-setuptools pip install types-PyYAML pip install types-requests pip install types-setuptools - name: Mypy run: | echo "::add-matcher::.github/workflows/matchers/mypy.json" tools/mypy.sh 1 ${{ matrix.python-version }}