name: Lint

on:
  pull_request:
  push:
    branches:
      - nightly
      - main
      - release/*
  workflow_dispatch:

jobs:
  python-source-and-configs:
    uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@release/2.7
    permissions:
      id-token: write
      contents: read
    with:
      repository: pytorch/vision
      test-infra-ref: release/2.7
      script: |
        set -euo pipefail

        echo '::group::Setup environment'
        CONDA_PATH=$(which conda)
        eval "$(${CONDA_PATH} shell.bash hook)"
        conda create --name ci --quiet --yes python=3.9 pip
        conda activate ci
        echo '::endgroup::'

        echo '::group::Install lint tools'
        pip install --progress-bar=off pre-commit
        echo '::endgroup::'

        set +e
        pre-commit run --all-files

        if [ $? -ne 0 ]; then
          git --no-pager diff
          exit 1
        fi

  # c-source:
  #   uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
  #   permissions:
  #     id-token: write
  #     contents: read
  #   with:
  #     repository: pytorch/vision
  #     test-infra-ref: main
  #     script: |
  #       set -euo pipefail

  #       echo '::group::Setup environment'
  #       CONDA_PATH=$(which conda)
  #       eval "$(${CONDA_PATH} shell.bash hook)"
  #       conda create --name ci --quiet --yes -c conda-forge python=3.9 clang-format
  #       conda activate ci
  #       echo '::endgroup::'


  #       echo '::group::Lint C source'
  #       set +e
  #       ./.github/scripts/run-clang-format.py -r torchvision/csrc --exclude "torchvision/csrc/io/image/cpu/giflib/*"

  #       if [ $? -ne 0 ]; then
  #         git --no-pager diff
  #         exit 1
  #       fi
  #       echo '::endgroup::'


  python-types:
    uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@release/2.7
    permissions:
      id-token: write
      contents: read
    with:
      repository: pytorch/vision
      test-infra-ref: release/2.7
      script: |
        set -euo pipefail

        export PYTHON_VERSION=3.11
        export GPU_ARCH_TYPE=cpu
        export GPU_ARCH_VERSION=''

        ./.github/scripts/setup-env.sh

        CONDA_PATH=$(which conda)
        eval "$(${CONDA_PATH} shell.bash hook)"
        conda activate ci

        echo '::group::Install lint tools'
        pip install --progress-bar=off "mypy==1.13.0"
        echo '::endgroup::'

        echo '::group::Lint Python types'
        mypy --install-types --non-interactive --config-file mypy.ini
        echo '::endgroup::'

  # bc:
  #   if: github.event.pull_request
  #   runs-on: ubuntu-latest
  #   steps:
  #     - name: Run BC Lint Action
  #       uses: pytorch/test-infra/.github/actions/bc-lint@main
  #       with:
  #         repo: ${{ github.event.pull_request.head.repo.full_name }}
  #         base_sha: ${{ github.event.pull_request.base.sha }}
  #         head_sha: ${{ github.event.pull_request.head.sha }}
# >>>>>>> 8a06122218 (Deactivate bc linter (#8999))
