blob: 4a945f0c65d3154c0ae88112e7e7ec4c15040b05 [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
files: |
(?x)^(
(
.github|
cobalt|
docker|
internal|
precommit_hooks|
starboard|
tools/metrics/actions/cobalt|
tools/metrics/histograms/metadata/cobalt|
)/
| ^[^/]+$ # files in the root
)
exclude: |
(?x)^(
(
internal/kokoro/third-party|
internal/starboard/shared/glimp/include|
internal/starboard/shared/playstation/glimp/shaders|
)/
|
.*_pb2\.py$ |
.*\.pb\.cc$ |
.*\.pb\.h$ |
.*\.patch$ |
.*Proto.java$|
.*\.sig$
)
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
- id: check-xml
- 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,varius,ridiculus,statics",
]
exclude: |
(?x)^(
(internal/)?starboard/[^/]+/i18n/|
cobalt/content/licenses/|
cobalt/content/ssl/|
cobalt/fetch/embedded_scripts|
cobalt/streams/embedded_scripts|
cobalt/loader/cors_preflight.cc|
internal/cobalt/browser/splash_screen/youtube_splash_screen.html|
internal/starboard/shared/playstation/storage_internal.cc|
starboard/loader_app/app_key_test.cc|
starboard/shared/starboard/player/testdata|
starboard/shared/win32/media_transform.cc
)
- 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: clang-format
name: clang-format
entry: clang-format
language: python
types: [c++]
exclude_types: [objective-c++]
args: [-i, -style=file]
additional_dependencies: ['clang-format']
- id: cpplint
name: cpplint
entry: cpplint
language: system
types: [c++]
args: [--verbose=4, --quiet]
exclude: |
(?x)(
^cobalt/bindings/(templates|generated)/|
^internal/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]
- id: pylint
name: pylint
entry: pylint
language: system
types: [python]
args: [-d W0201]
- 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: |
(?x)^(
.pylintrc$|
.pre-commit-config.yaml$|
cobalt/base/unicode/|
cobalt/demos/content/|
cobalt/layout_tests/testdata/|
cobalt/math/|
cobalt/media/|
cobalt/streams/|
cobalt/webdriver/screencast/|
cobalt/websocket/|
components/crx_file/|
content/|
internal/starboard/shared/glimp/|
nb/|
starboard/android/apk/gradlew|
starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaDrmBridge.java$|
starboard/shared/starboard/player/filter/decoded_audio_queue.cc$|
starboard/shared/starboard/player/filter/decoded_audio_queue.h$|
starboard/shared/starboard/player/testdata/licences/|
starboard/shared/starboard/player/filter/wsola_internal.cc$
)
exclude_types: [markdown]
verbose: true
- 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, cobalt/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: gn-format
name: GN format
entry: gn format
language: system
files: '.*\.gni?$'
- id: meta-validate
name: Validate METADATA files
entry: python -m cobalt.tools.metadata.validate
language: python
additional_dependencies:
- "protobuf"
always_run: true
pass_filenames: false