blob: 07c259b9798fb8f319c6dcd9bfb7e765bb32280f [file] [log] [blame]
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_stages: [commit]
default_language_version:
python: python3
exclude: |
(?x)^(
(
base|
build|
testing|
third_party|
tools/gyp
)/
|
components/update_client/((?!cobalt).)*$
)
repos:
- repo: https://cobalt.googlesource.com/pre-commit-hooks
rev: e1668fe86af3810fbca72b8653fe478e66a0afdc # v3.2.0
hooks:
- id: check-case-conflict
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
- repo: https://cobalt.googlesource.com/codespell
rev: 67c489d36dd4c52cbb9e4755d90c35c6231842ef # v2.0.0
hooks:
- id: codespell
name: Spell Check
args: [-x, .codespellignorelines,
# The --ignore-words-list argument has a bug where it needs to
# be lowercase, see
# https://github.com/codespell-project/codespell/issues/1390
--ignore-words-list, atleast]
exclude: '^cobalt/content/i18n/platform/'
- repo: local
hooks:
- id: sync-keyboxes
name: sync-keyboxes
entry: python ./precommit_hooks/sync_keyboxes_wrapper.py
language: python
stages: [post-checkout]
always_run: true
- id: cpplint
name: cpplint
entry: cpplint
language: system
types: [c++]
args: [--verbose=4, --quiet]
exclude: |
(?x)(
^cobalt/bindings/(templates|generated)/|
^starboard/shared/uikit/.*\.h$|
tests?\.(cc|h)$
)
- id: cpplint_test
name: cpplint_test
entry: cpplint
language: system
types: [c++]
args: [--verbose=5, --quiet]
files: '.*tests?.(cc|h)$'
exclude: '^starboard/shared/uikit/.*\.h$'
- id: yapf
name: yapf
description: Run yapf (the python formatter) in-place on changed files.
entry: yapf
language: system
types: [python]
args: [-i, -vv]
exclude: '\.gypi?$'
- id: pylint
name: pylint
entry: pylint
language: system
types: [python]
args: [-d W0201]
exclude: '\.gypi?$'
- id: clang-format
name: clang-format
entry: python ./precommit_hooks/clang_format_wrapper.py
language: python
types: [c++]
args: [-i, -style=file]
- id: google-java-format
name: google-java-format
entry: python ./precommit_hooks/google_java_format_wrapper.py
language: python
types: [java]
args: [-i]
- id: gcheckstyle
name: Lint Java With gcheckstyle
entry: python ./precommit_hooks/gcheckstyle_wrapper.py
language: python
types: [java]
verbose: true
- id: check-copyright-year
name: check copyright year
entry: python ./precommit_hooks/check_copyright_year.py
language: python
types: [file, text]
stages: [push]
exclude: '^cobalt/layout_tests/testdata/'
exclude_types: [markdown]
- id: check-if-starboard-interface-changed
name: check if starboard interface changed
entry: python ./precommit_hooks/warn_that_starboard_interface_changed_wrapper.py
language: python
files: '^starboard/*.h$'
stages: [push]
- id: download-resources
name: download resources
entry: python ./download_resources.py
language: python
stages: [post-checkout]
always_run: true
- id: test-download-from-gcs-helper
name: test download from gcs helper
entry: python
language: python
pass_filenames: false
always_run: true
stages: [push]
args: [-m, unittest, tools/download_from_gcs_test.py]
- id: test-python3-compatibility
name: Test Python 3 Compatibility
description: Checks that scripts can be run in Python 3
entry: python precommit_hooks/python3_check.py
language: python
types: [python]
verbose: true
- id: check-bug-in-commit-message
name: Check Bug In Commit Message
description: Checks for a tracking bug in a commit message
entry: python precommit_hooks/check_bug_in_description_wrapper.py
language: python
stages: [push]
always_run: true
pass_filenames: false
- id: run-py2-tests
name: Run Python 2 Tests
description: Run Python 2 unittests
entry: python precommit_hooks/run_python2_unittests.py
language: python
language_version: python2
additional_dependencies: ['mock']
types: [python]
- id: osslint
name: osslint
entry: python precommit_hooks/osslint_wrapper.py
language: python
types: [text]
stages: [manual]
- id: internal-file-check
name: Internal File Check
entry: python precommit_hooks/internal_file_check_wrapper.py
language: python
types: [text]
# TODO: Remove docker-compose-windows.yml after internal check evaluates
# properly on it.
exclude: '(^docker-compose-windows.yml|EXCLUDE\.FILES(\.RECURSIVE)?)$'
- id: gn-format
name: GN format
entry: gn format
language: system
files: '.*\.gni?$'
- id: gyp-changes
name: Disallow GYP Changes
entry: echo -e "GYP is deprecated and will not be included past Cobalt 22. Use GN.\n"
language: system
files: '\.gypi?$'
verbose: true