diff options
-rw-r--r-- | .pre-commit-config.yaml | 8 | ||||
-rwxr-xr-x | Meta/lint-ci.sh | 22 |
2 files changed, 29 insertions, 1 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4d4f8bc864..cccace050d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,4 +4,12 @@ repos: - id: meta-lint-ci name: Running Meta/lint-ci.sh to ensure changes will pass linting on CI entry: bash Meta/lint-ci.sh + args: [ --no-ports ] + language: system + + - id: meta-lint-ports + name: Running Meta/lint-ports.py to ensure changes will pass linting on CI + entry: Meta/lint-ports.py + pass_filenames: false + files: ^Ports/ language: system diff --git a/Meta/lint-ci.sh b/Meta/lint-ci.sh index a2774ae824..fae13831e7 100755 --- a/Meta/lint-ci.sh +++ b/Meta/lint-ci.sh @@ -5,6 +5,12 @@ set -e script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P) cd "${script_path}/.." || exit 1 +ports=true +if [ "$1" == "--no-ports" ]; then + ports=false + shift +fi + RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color @@ -22,7 +28,6 @@ for cmd in \ Meta/lint-ipc-ids.sh \ Meta/lint-keymaps.py \ Meta/lint-shell-scripts.sh \ - Meta/lint-ports.py \ Meta/lint-prettier.sh \ Meta/lint-python.sh; do echo "Running ${cmd}... " @@ -42,6 +47,21 @@ else ((FAILURES+=1)) fi +# lint-ports.py is handled separately as it scans all Ports/ all the time. +# This is fine when running lint-ci.sh from the PR validation workflow. +# However when running from the pre-commit workflow it takes an excessive +# amount of time. This condition allows the pre-commit program to detect +# when Ports/ files have changed and only invoke lint-ports.py when needed. +# +if [ "$ports" = true ]; then + if Meta/lint-ports.py; then + echo -e "[${GREEN}OK${NC}]: Meta/lint-ports.py" + else + echo -e "[${RED}FAIL${NC}]: Meta/lint-ports.py" + ((FAILURES+=1)) + fi +fi + echo "(Not running lint-missing-resources.sh due to high false-positive rate.)" echo "(Also look out for check-symbols.sh, which can only be executed after the build!)" |