forked from robustmq/robustmq
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
134 lines (133 loc) · 4.08 KB
/
.pre-commit-config.yaml
File metadata and controls
134 lines (133 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright 2023 RobustMQ Team
#
# Licensed 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.
fail_fast: false
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-byte-order-marker
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
args: [--allow-multiple-documents]
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
- id: check-docstring-first
- id: check-added-large-files
- id: check-json
- id: check-toml
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
# todo: we can use online github repo
# - repo: https://github.com/crate-ci/typos
# rev: v1.28.4
# hooks:
# - id: typos
# language: system
# files: \.*$
# pass_filenames: false
# - repo: https://github.com/EmbarkStudios/cargo-deny
# rev: 0.14.16 # choose your preferred tag
# hooks:
# - id: cargo-deny
# # optionally modify the arguments for cargo-deny (default arguments shown here)
# args: [ "--licenses", "check" ]
- repo: local
hooks:
- id: cargo-fmt-auto
name: cargo fmt auto
description: Format files with rustfmt automatically.
entry: bash -c 'cargo fmt --all'
language: rust
files: \.rs$
args: []
- id: hawkeye-fmt-auto
name: hawkeye fmt auto
description: Format files with hawkeye automatically.
entry: bash -c 'hawkeye format'
language: system
pass_filenames: true
files: \.*$
args: []
# todo it will check precommit_venv which is not necessary
# - id: typos
# name: typos
# description: check typo
# entry: bash -c 'typos'
# language: system
# files: \.(rs|toml|yaml)$
# exclude: ^precommit_venv/
# pass_filenames: true
# args: [ '--exclude', 'precommit_venv' ]
- id: cargo-check
stages:
- pre-commit
name: cargo check
description: Check the package for errors.
entry: bash -c 'cargo check --all'
language: system
files: \.rs$
pass_filenames: false
- id: hawkeye-fmt-check
stages:
- pre-commit
name: hawkeye fmt check
description: Check files with hawkeye.
entry: bash -c 'hawkeye check'
language: rust
files: \.*$
args: []
- id: cargo-fmt-check
stages:
- pre-commit
name: cargo fmt
description: Format files with rustfmt.
entry: bash -c 'cargo fmt -- --check'
language: system
pass_filenames: true
files: \.rs$
args: [ ]
- id: cargo-deny
stages:
- pre-commit
name: cargo deny check
description: Check cargo dependencies
# we only check licenses
entry: bash -c 'cargo deny check licenses'
language: system
files: \.rs$
args: []
- id: cargo-clippy
stages:
- pre-commit
name: cargo clippy
description: Lint rust sources
entry: bash -c 'cargo clippy --all-targets --all-features --tests --benches -- -D warnings'
language: system
files: \.rs$
pass_filenames: false
# we think it is not necessary to run tests in pre-commit
# - id: cargo-test
# stages:
# - pre-push
# name: cargo test
# description: unit test for the project
# entry: bash -c 'make test'
# language: system
# files: \.rs$
# pass_filenames: false