Local lint fixes - missing steps, pin to bash (#56752)

Summary:
Fixes #56738

* `setup_lint` now installs mypy / shellcheck
* the shell used to execute commands is pinned to `bash` (on Ubuntu the default is `dash`, which was causing the false positives in #56738)
* the emoji check marks don't always work, so use more basic ones instead
* adds `Run autogen` step for mypy (for the `lint` step only since it's pretty slow)
](https://our.intern.facebook.com/intern/diff/27972006/)
Pull Request resolved: https://github.com/pytorch/pytorch/pull/56752

Pulled By: driazati

Reviewed By: samestep

Differential Revision: D27972006

fbshipit-source-id: 624e6c1af2d4f7c8623f420516744922b6b829a5
This commit is contained in:
davidriazati@fb.com
2021-04-23 13:06:04 -07:00
committed by Facebook GitHub Bot
parent 6de1d9b2d0
commit 0424f6af93
3 changed files with 57 additions and 18 deletions

View File

@ -33,13 +33,25 @@ generate-gha-workflows:
setup_lint:
python tools/actions_local_runner.py --file .github/workflows/lint.yml \
--job 'flake8-py3' --step 'Install dependencies'
--job 'flake8-py3' --step 'Install dependencies' --no-quiet
python tools/actions_local_runner.py --file .github/workflows/lint.yml \
--job 'cmakelint' --step 'Install dependencies'
--job 'cmakelint' --step 'Install dependencies' --no-quiet
python tools/actions_local_runner.py --file .github/workflows/lint.yml \
--job 'mypy' --step 'Install dependencies' --no-quiet
# TODO: This is broken on MacOS (it downloads a Linux binary)
python tools/actions_local_runner.py --file .github/workflows/lint.yml \
--job 'quick-checks' --step 'Install ShellCheck' --no-quiet
pip install jinja2
quick_checks:
# TODO: This is broken when 'git config submodule.recurse' is 'true'
@python tools/actions_local_runner.py \
--file .github/workflows/lint.yml \
--job 'quick-checks' \
--step 'Extract scripts from GitHub Actions workflows'
# TODO: This is broken when 'git config submodule.recurse' is 'true' since the
# lints will descend into third_party submodules
@python tools/actions_local_runner.py \
--file .github/workflows/lint.yml \
--job 'quick-checks' \
@ -50,6 +62,7 @@ quick_checks:
--step 'Ensure no unqualified noqa' \
--step 'Ensure no unqualified type ignore' \
--step 'Ensure no direct cub include' \
--step 'Run ShellCheck' \
--step 'Ensure correct trailing newlines'
flake8:
@ -59,8 +72,19 @@ flake8:
$(CHANGED_ONLY) \
--job 'flake8-py3' \
--step 'Run flake8'
@python tools/actions_local_runner.py \
--file .github/workflows/lint.yml \
--file-filter '.py' \
$(CHANGED_ONLY) \
--job 'flake8-py3' \
--step 'Fail if there were any warnings'
mypy:
@if [ -z "$(CHANGED_ONLY)" ]; then \
python tools/actions_local_runner.py --file .github/workflows/lint.yml --job 'mypy' --step 'Run autogen'; \
else \
echo "mypy: Skipping typestub generation"; \
fi
@python tools/actions_local_runner.py \
--file .github/workflows/lint.yml \
--file-filter '.py' \