Skip to content

Commit

Permalink
test(pre-commit): switch to using pre-commit's built-in file filtering
Browse files Browse the repository at this point in the history
* only run `yamllint` when relevant files have changed
* avoids having to exclude files/dirs not tracked by Git
  e.g. .kitchen/, .bundle/ etc.
* avoids a `yamllint` bug whereby pillar files under `test/`
  were not checked due to a conflicting `ignore` entry
  • Loading branch information
dafyddj committed Nov 10, 2023
1 parent 1ca9120 commit be66375
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 34 deletions.
30 changes: 27 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,33 @@ repos:
hooks:
- id: yamllint
name: Check YAML syntax with yamllint
args: [--strict, '.']
always_run: true
pass_filenames: false
args: [--strict]
types: [file]
# Files to include
# 1. Obvious YAML files
# 2. `pillar.example` and similar files
# 3. SLS files under directory `test/` which are pillar files
# Files to exclude
# 1. SLS files under directory `test/` which are state files
# 2. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
# 3. YAML files heavily reliant on Jinja
files: |
(?x)^(
.*\.yaml|
.*\.yml|
\.salt-lint|
\.yamllint|
.*\.example|
test/.*\.sls
)$
exclude: |
(?x)^(
kitchen.vagrant.yml|
test/.*/states/.*\.sls|
salt/osfamilymap.yaml|
salt/osmap.yaml|
salt/osfingermap.yaml
)$
- repo: https://github.com/warpnet/salt-lint
rev: v0.9.2
hooks:
Expand Down
31 changes: 0 additions & 31 deletions .yamllint
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,6 @@
# Extend the `default` configuration provided by `yamllint`
extends: 'default'

# Files to ignore completely
# 1. All YAML files under directory `.bundle/`, introduced if gems are installed locally
# 2. All YAML files under directory `.cache/`, introduced during the CI run
# 3. All YAML files under directory `.git/`
# 4. All YAML files under directory `node_modules/`, introduced during the CI run
# 5. Any SLS files under directory `test/`, which are actually state files
# 6. Any YAML files under directory `.kitchen/`, introduced during local testing
# 7. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
# 8. All YAML files heavily reliant on Jinja; these can be tackled in a subsequent PR
ignore: |
.bundle/
.cache/
.git/
node_modules/
test/**/states/**/*.sls
.kitchen/
kitchen.vagrant.yml
salt/osfamilymap.yaml
salt/osmap.yaml
salt/osfingermap.yaml
yaml-files:
# Default settings
- '*.yaml'
- '*.yml'
- .salt-lint
- .yamllint
# SaltStack Formulas additional settings
- '*.example'
- test/**/*.sls

rules:
empty-values:
forbid-in-block-mappings: true
Expand Down

0 comments on commit be66375

Please sign in to comment.