Files
oam/.lefthook.yml
2024-03-18 18:19:15 +01:00

78 lines
2.1 KiB
YAML

---
assert_lefthook_installed: true
no_tty: true
skip_output:
- meta
- skips
lint:
parallel: true
commands:
docker: &hadolint
# The official docker image is based on scratch and only takes only one
# input file at a time. I have no clue how to fix that for now so let's
# just use the local command.
glob: "*Dockerfile*"
run: hadolint {all_files}
md: &markdownlint
glob: "*.md"
run: >- # '{all_files}' and {files} only include ones managed by git for some reason
docker run --rm -v "$PWD:/workdir" 'ghcr.io/igorshubovych/markdownlint-cli:latest'
**.md
yaml: &yamllint
glob: "*.{yaml,yml}"
run: >-
docker run --rm -v "$PWD:/code" 'registry.gitlab.com/pipeline-components/yamllint:latest'
yamllint {all_files}
validate:
parallel: true
commands:
json: &jq
# No official docker image available for now, falling back to the local
# command.
glob: '*.json'
run: jq -r 'input_filename' {all_files}
yaml: &yq
# Python's one, not mikefarah's.
# No official docker image available for now, falling back to the local
# command.
glob: '*.{yaml,yml}'
run: >-
echo '{all_files}'
| xargs -t yq '.'
pre-commit:
parallel: true
commands:
validate-json:
<<: *jq
run: jq -r 'input_filename' {staged_files}
validate-yaml:
<<: *yq
run: >-
yq '.' {staged_files} > /dev/null
&& echo 'All YAML files are readable'
lint-docker:
<<: *hadolint
run: hadolint {staged_files}
lint-md:
<<: *markdownlint
run: >-
docker run --rm -v "$PWD:/workdir" 'ghcr.io/igorshubovych/markdownlint-cli:latest'
{staged_files}
lint-yaml:
<<: *yamllint
run: >-
docker run --rm -v "$PWD:/code" 'registry.gitlab.com/pipeline-components/yamllint:latest'
yamllint {staged_files}
commit-msg:
commands:
commitlint:
# No official docker image available for now, falling back to the local
# command.
run: commitlint --edit