--- 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 files: >- find . -type 'f' \( -name '*.md' -or -name '*.markdown' \) -not \( -path '*/node_modules/*' -or -path '*/venv/*' \) run: >- docker run --rm -v "$PWD:/workdir" 'ghcr.io/igorshubovych/markdownlint-cli:latest' {files} 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: glob: '*.{markdown,md}' 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