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.yml@release/2.1 with: repository: pytorch/vision 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.8 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.yml@release/2.1 with: repository: pytorch/vision script: | set -euo pipefail echo '::group::Setup environment' CONDA_PATH=$(which conda) eval "$(${CONDA_PATH} shell.bash hook)" # clang-format needs some shared libraries that conflict with the system ones. Thus, we install them from conda # and prepend the libraries to linker path to prioritize them. `ncurses=5` is only available on the conda-forge # channel. Since we are not building or testing here, this is fine. conda create --name ci --quiet --yes -c conda-forge python=3.8 ncurses=5 libgcc conda activate ci export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH}" echo '::endgroup::' echo '::group::Install lint tools' curl https://oss-clang-format.s3.us-east-2.amazonaws.com/linux64/clang-format-linux64 -o ./clang-format chmod +x ./clang-format echo '::endgroup::' echo '::group::Lint C source' set +e ./.github/scripts/run-clang-format.py -r torchvision/csrc --clang-format-executable ./clang-format if [ $? -ne 0 ]; then git --no-pager diff exit 1 fi echo '::endgroup::' python-types: uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.1 with: repository: pytorch/vision script: | set -euo pipefail export PYTHON_VERSION=3.8 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 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@release/2.1 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 }}