Skip to content

Commit 625999b

Browse files
joyeecheungevanlucas
authored andcommitted
tools: don't lint files that have not changed
PR-URL: #16581 Reviewed-By: Gireesh Punathil <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
1 parent bc19a93 commit 625999b

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

Makefile

+30-6
Original file line numberDiff line numberDiff line change
@@ -974,6 +974,7 @@ bench-ci: bench
974974
lint-md-clean:
975975
$(RM) -r tools/remark-cli/node_modules
976976
$(RM) -r tools/remark-preset-lint-node/node_modules
977+
$(RM) tools/.*mdlintstamp
977978

978979
lint-md-build:
979980
@if [ ! -d tools/remark-cli/node_modules ]; then \
@@ -983,10 +984,25 @@ lint-md-build:
983984
echo "Markdown linter: installing remark-preset-lint-node into tools/"; \
984985
cd tools/remark-preset-lint-node && ../../$(NODE) ../../$(NPM) install; fi
985986

986-
lint-md: lint-md-build
987-
@echo "Running Markdown linter..."
988-
$(NODE) tools/remark-cli/cli.js -q -f \
989-
./*.md doc src lib benchmark tools/doc/ tools/icu/
987+
LINT_MD_TARGETS = src lib benchmark tools/doc tools/icu
988+
LINT_MD_ROOT_DOCS := $(wildcard *.md)
989+
LINT_MD_FILES := $(shell find $(LINT_MD_TARGETS) -type f \
990+
-not -path '*node_modules*' -name '*.md') $(LINT_MD_ROOT_DOCS)
991+
LINT_DOC_MD_FILES = $(shell ls doc/**/*.md)
992+
993+
tools/.docmdlintstamp: $(LINT_DOC_MD_FILES)
994+
@echo "Running Markdown linter on docs..."
995+
@$(NODE) tools/remark-cli/cli.js -q -f $(LINT_DOC_MD_FILES)
996+
@touch $@
997+
998+
tools/.miscmdlintstamp: $(LINT_MD_FILES)
999+
@echo "Running Markdown linter on misc docs..."
1000+
@$(NODE) tools/remark-cli/cli.js -q -f $(LINT_MD_FILES)
1001+
@touch $@
1002+
1003+
tools/.mdlintstamp: tools/.miscmdlintstamp tools/.docmdlintstamp
1004+
1005+
lint-md: | lint-md-build tools/.mdlintstamp
9901006

9911007
LINT_JS_TARGETS = benchmark doc lib test tools
9921008
LINT_JS_CMD = tools/eslint/bin/eslint.js --cache \
@@ -1048,10 +1064,13 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \
10481064
# and the actual filename is generated so it won't match header guards
10491065
ADDON_DOC_LINT_FLAGS=-whitespace/ending_newline,-build/header_guard
10501066

1051-
lint-cpp:
1067+
lint-cpp: tools/.cpplintstamp
1068+
1069+
tools/.cpplintstamp: $(LINT_CPP_FILES)
10521070
@echo "Running C++ linter..."
1053-
@$(PYTHON) tools/cpplint.py $(LINT_CPP_FILES)
1071+
@$(PYTHON) tools/cpplint.py $?
10541072
@$(PYTHON) tools/check-imports.py
1073+
@touch $@
10551074

10561075
lint-addon-docs: test/addons/.docbuildstamp
10571076
@echo "Running C++ linter on addon docs..."
@@ -1087,6 +1106,10 @@ lint:
10871106
lint-ci: lint
10881107
endif
10891108

1109+
lint-clean:
1110+
$(RM) tools/.*lintstamp
1111+
$(RM) .eslintcache
1112+
10901113
.PHONY: $(TARBALL)-headers \
10911114
all \
10921115
bench \
@@ -1127,6 +1150,7 @@ endif
11271150
install-bin \
11281151
install-includes \
11291152
lint \
1153+
lint-clean \
11301154
lint-ci \
11311155
lint-cpp \
11321156
lint-js \

0 commit comments

Comments
 (0)