Add `pre-commit` workflow with 3 Git hooks (#6273)

Co-authored-by: dahn <daan@onecht.net>
This commit is contained in:
John Bampton 2023-01-11 21:25:31 +10:00 committed by GitHub
parent a85973a0ca
commit 00426ede46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 2509 additions and 2449 deletions

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
name: Lint Code Base name: Lint
on: [pull_request] on: [pull_request]
@ -31,7 +31,7 @@ jobs:
permissions: permissions:
contents: read # for actions/checkout to fetch code contents: read # for actions/checkout to fetch code
statuses: write # for github/super-linter to mark status of each linter run statuses: write # for github/super-linter to mark status of each linter run
name: SuperLinter Check name: Super-Linter Check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Code - name: Checkout Code
@ -39,10 +39,28 @@ jobs:
with: with:
# Full git history is needed to get a proper list of changed files within `super-linter` # Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0 fetch-depth: 0
- name: SuperLinter - name: Super-Linter
uses: github/super-linter@v4 uses: github/super-linter@v4
env: env:
DEFAULT_BRANCH: main DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_ALL_CODEBASE: false VALIDATE_ALL_CODEBASE: false
VALIDATE_PYTHON_FLAKE8: true VALIDATE_PYTHON_FLAKE8: true
pre-commit:
name: Run pre-commit
runs-on: ubuntu-latest
steps:
- name: Check Out
uses: actions/checkout@v3
- name: Install
run: |
python -m pip install --upgrade pip
pip install pre-commit
- name: Set PY
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Run pre-commit
run: pre-commit run --all-files

42
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,42 @@
# 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.
---
default_stages: [commit, push]
default_language_version:
# force all unspecified Python hooks to run python3
python: python3
minimum_pre_commit_version: "2.18.0"
repos:
- repo: meta
hooks:
- id: identity
- id: check-hooks-apply
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.1.0
hooks:
#- id: check-added-large-files
#- id: check-case-conflict
#- id: check-executables-have-shebangs
#- id: check-merge-conflict
#- id: check-vcs-permalinks
#- id: check-yaml
#- id: detect-private-key
#- id: end-of-file-fixer
#- id: fix-byte-order-marker
- id: mixed-line-ending
files: \.(java|py)$
# - id: trailing-whitespace