# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.4.0 hooks: - id: trailing-whitespace # note: whitespace exclusions use multiline regex, see https://pre-commit.com/#regular-expressions # items are: # 1 - some file extensions # 2 - any file matching *test*/*expected* (for host tests, if possible use this naming pattern always) # 3 - any directory named 'testdata' # 4 - IDF monitor test data exclude: &whitespace_excludes | (?x)^( .+\.(md|rst|map|bin)| .+test.*\/.*expected.*| .+\/testdata\/.+| .+test_idf_monitor\/tests\/.+ )$ - id: end-of-file-fixer exclude: *whitespace_excludes - id: check-executables-have-shebangs - id: mixed-line-ending args: ['-f=lf'] - id: double-quote-string-fixer - repo: https://gitlab.com/pycqa/flake8 rev: 3.8.4 hooks: - id: flake8 args: ['--config=.flake8', '--tee', '--benchmark'] - repo: https://github.com/pycqa/isort rev: 5.6.4 hooks: - id: isort name: isort (python) - repo: local hooks: - id: check-executables name: Check File Permissions entry: tools/ci/check_executables.py --action executables language: python types: [executable] exclude: '\.pre-commit/.+' - id: check-executable-list name: Validate executable-list.txt entry: tools/ci/check_executables.py --action list language: python pass_filenames: false always_run: true - id: check-kconfigs name: Validate Kconfig files entry: tools/ci/check_kconfigs.py language: python files: '^Kconfig$|Kconfig.*$' - id: check-deprecated-kconfigs-options name: Check if any Kconfig Options Deprecated entry: tools/ci/check_deprecated_kconfigs.py language: python files: 'sdkconfig\.ci$|sdkconfig\.rename$|sdkconfig.*$' - id: cmake-lint name: Check CMake Files Format entry: cmakelint --linelength=120 --spaces=4 --filter=-whitespace/indent language: python additional_dependencies: - cmakelint==1.4.1 files: 'CMakeLists.txt$|\.cmake$' exclude: '\/third_party\/' - id: check-codeowners name: Validate Codeowner File entry: tools/ci/check_codeowners.py ci-check language: python files: '\.gitlab/CODEOWNERS' pass_filenames: false - id: check-rules-yml name: Check rules.yml all rules have at lease one job applied, all rules needed exist entry: tools/ci/check_rules_yml.py language: python files: '\.gitlab/ci/.+\.yml|\.gitlab-ci.yml' pass_filenames: false additional_dependencies: - PyYAML == 5.3.1 - id: check-generated-rules name: Check rules are generated (based on .gitlab/ci/dependencies/dependencies.yml) entry: .gitlab/ci/dependencies/generate_rules.py language: python files: '\.gitlab/ci/dependencies/.+|\.gitlab/ci/rules\.yml' pass_filenames: false additional_dependencies: - PyYAML == 5.3.1 - id: mypy-check name: Check type annotations in python files entry: tools/ci/check_type_comments.py additional_dependencies: ['mypy==0.800', 'mypy-extensions==0.4.3'] language: python types: [python] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.4.0 hooks: - id: file-contents-sorter files: '(tools\/ci\/executable-list\.txt|tools\/ci\/mypy_ignore_list\.txt)'