diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000000..3a2c07de458a --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,83 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Pre-commit hook +# See documentation at: https://pre-commit.com/ +# +# Pre-commit hook to run the sanity checks from Jenkins locally. +# +# Requirements: +# - How to configure: +# - $ pip install pre-commit +# - $ pre-commit install +# - How to prevent running it: +# - git options: --no-verify or -n +# - $ git commit -n -m "YOUR COMMIT MESSAGE" +# - How to run it as standalone +# - $ pre-commit run +# + +default_language_version: + python: python3.8 +fail_fast: True +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-added-large-files + - id: check-merge-conflict + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: local + hooks: + - id: run-black + name: Running Black... + entry: docker/lint.sh python_format + language: system + always_run: true + pass_filenames: false + - id: run-file-checks + name: Checking File Types.... + entry: docker/lint.sh file_type + language: system + always_run: true + pass_filenames: false + - id: run-headers-check + name: Checking ASF License Headers ... + entry: docker/lint.sh asf + language: system + always_run: true + pass_filenames: false + - id: run-headers-check + name: Linting the C++ code ... + entry: docker/lint.sh cpplint + language: system + always_run: true + pass_filenames: false + - id: run-clang-format + name: Checking Clang format ... + entry: docker/lint.sh clang_format + language: system + always_run: true + pass_filenames: false + - id: run-mypy + name: Type Checking with MyPY ... + entry: docker/lint.sh mypy + language: system + always_run: true + pass_filenames: false diff --git a/docker/bash.sh b/docker/bash.sh index 4667f27b0b9b..2a05abf4f2bc 100755 --- a/docker/bash.sh +++ b/docker/bash.sh @@ -20,7 +20,7 @@ # # Start a bash, mount REPO_MOUNT_POINT to be current directory. # -# Usage: docker/bash.sh [-i|--interactive] [--net=host] +# Usage: docker/bash.sh [-i|--interactive] [--net=host] [-t|--tty] # [--mount MOUNT_DIR] [--repo-mount-point REPO_MOUNT_POINT] # [--dry-run] # [--] [COMMAND] @@ -35,6 +35,7 @@ set -euo pipefail + function show_usage() { cat <&2 echo "usage: ${SCRIPT_NAME} [-i] " >&2