mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 12:54:11 +08:00
Summary: This pulls out shell scripts from an action and runs them locally as a first pass at https://github.com/pytorch/pytorch/issues/55847. A helper script extracts specific steps in some order and runs them: ```bash $ time -p make lint -j 5 # run lint with 5 CPUs python scripts/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'flake8-py3' \ --step 'Run flake8' python scripts/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'mypy' \ --step 'Run mypy' python scripts/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'quick-checks' \ --step 'Ensure no trailing spaces' \ --step 'Ensure no tabs' \ --step 'Ensure no non-breaking spaces' \ --step 'Ensure canonical include' \ --step 'Ensure no unqualified noqa' \ --step 'Ensure no direct cub include' \ --step 'Ensure correct trailing newlines' python scripts/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'cmakelint' \ --step 'Run cmakelint' quick-checks: Ensure no direct cub include quick-checks: Ensure canonical include quick-checks: Ensure no unqualified noqa quick-checks: Ensure no non-breaking spaces quick-checks: Ensure no tabs quick-checks: Ensure correct trailing newlines cmakelint: Run cmakelint quick-checks: Ensure no trailing spaces mypy: Run mypy Success: no issues found in 1316 source files Success: no issues found in 56 source files flake8-py3: Run flake8 ./test.py:1:1: F401 'torch' imported but unused real 13.89 user 199.63 sys 6.08 ``` Mypy/flake8 are by far the slowest, but that's mostly just because they're wasting a bunch of work linting the entire repo. In followup, we could/should: * Improve ergonomics (i.e. no output unless there are errors) * Speed up lint by only linting files changes between origin and HEAD * Add clang-tidy Pull Request resolved: https://github.com/pytorch/pytorch/pull/56439 Reviewed By: samestep Differential Revision: D27888027 Pulled By: driazati fbshipit-source-id: d6f2a59a45e9d725566688bdac8e909210175996
77 lines
2.1 KiB
Makefile
77 lines
2.1 KiB
Makefile
# This makefile does nothing but delegating the actual building to cmake.
|
|
|
|
all:
|
|
@mkdir -p build && cd build && cmake .. $(shell python ./scripts/get_python_cmake_flags.py) && $(MAKE)
|
|
|
|
local:
|
|
@./scripts/build_local.sh
|
|
|
|
android:
|
|
@./scripts/build_android.sh
|
|
|
|
ios:
|
|
@./scripts/build_ios.sh
|
|
|
|
clean: # This will remove ALL build folders.
|
|
@rm -r build*/
|
|
@$(RM) -r $(SHELLCHECK_GHA_GENERATED_FOLDER)
|
|
|
|
linecount:
|
|
@cloc --read-lang-def=caffe.cloc caffe2 || \
|
|
echo "Cloc is not available on the machine. You can install cloc with " && \
|
|
echo " sudo apt-get install cloc"
|
|
|
|
SHELLCHECK_GHA_GENERATED_FOLDER=.shellcheck_generated_gha
|
|
shellcheck-gha:
|
|
@$(RM) -r $(SHELLCHECK_GHA_GENERATED_FOLDER)
|
|
tools/extract_scripts.py --out=$(SHELLCHECK_GHA_GENERATED_FOLDER)
|
|
tools/run_shellcheck.sh $(SHELLCHECK_GHA_GENERATED_FOLDER)
|
|
|
|
generate-gha-workflows:
|
|
./.github/scripts/generate_linux_ci_workflows.py
|
|
$(MAKE) shellcheck-gha
|
|
|
|
setup_lint:
|
|
python tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'flake8-py3' --step 'Install dependencies'
|
|
python tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'cmakelint' --step 'Install dependencies'
|
|
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 'Ensure no trailing spaces' \
|
|
--step 'Ensure no tabs' \
|
|
--step 'Ensure no non-breaking spaces' \
|
|
--step 'Ensure canonical include' \
|
|
--step 'Ensure no unqualified noqa' \
|
|
--step 'Ensure no direct cub include' \
|
|
--step 'Ensure correct trailing newlines'
|
|
|
|
flake8:
|
|
@python tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'flake8-py3' \
|
|
--step 'Run flake8'
|
|
|
|
mypy:
|
|
@python tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'mypy' \
|
|
--step 'Run mypy'
|
|
|
|
cmakelint:
|
|
@python tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'cmakelint' \
|
|
--step 'Run cmakelint'
|
|
|
|
clang_tidy:
|
|
echo "clang-tidy local lint is not yet implemented"
|
|
exit 1
|
|
|
|
lint: flake8 mypy quick_checks cmakelint generate-gha-workflows
|