mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-08 21:34:25 +00:00
106 lines
2.8 KiB
YAML
106 lines
2.8 KiB
YAML
---
|
|
assert_lefthook_installed: true
|
|
no_tty: true
|
|
skip_output:
|
|
- meta
|
|
- skips
|
|
|
|
|
|
debug:
|
|
parallel: true
|
|
commands:
|
|
commitlint-config:
|
|
glob: '.commitlintrc.js'
|
|
run: node_modules/.bin/commitlint --print-config
|
|
|
|
pre-flight:
|
|
parallel: true
|
|
commands:
|
|
commitlint:
|
|
run: npm install --save-dev '@commitlint/cli' '@commitlint/config-conventional'
|
|
venv:
|
|
run: make recreate-venv
|
|
|
|
|
|
lint:
|
|
parallel: true
|
|
commands:
|
|
ansible: &ansible-lint
|
|
glob: '*ansible*'
|
|
run: .venv/bin/ansible-lint
|
|
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}
|
|
# ini: &pyinilint # FIXME
|
|
# run: pyinilint 'file'
|
|
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:
|
|
ansible-playbook: &ansible-playbook-syntax-check
|
|
glob: "*ansible*/play*.{yaml,yml}"
|
|
run: .venv/bin/ansible-playbook -i localhost, --syntax-check {all_files}
|
|
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'
|
|
validate-ansible-playbooks:
|
|
<<: *ansible-playbook-syntax-check
|
|
lint-ansible:
|
|
<<: *ansible-lint
|
|
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:
|
|
lint: &commitlint
|
|
# No official docker image available for now, falling back to the local
|
|
# command.
|
|
run: node_modules/.bin/commitlint --edit
|