#!/usr/bin/env bash set -e SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPTDIR}/.validate" if [ -n "${TEST_FORCE_VALIDATE:-}" ]; then files=(docs/api/*.yaml) else IFS=$'\n' files=($(validate_diff --diff-filter=ACMR --name-only -- docs/*.yaml || true)) unset IFS fi # validate the yamllint configuration file before anything else if out=$(yamllint -f parsable -d "{extends: default, rules: {document-start: disable}}" "${SCRIPTDIR}"/yamllint.yaml); then echo "Congratulations! yamllint config file formatted correctly" else echo "${out}" >&2 false fi # Then validate GitHub actions workflows, and conditionally lint the swagger # files in the docs directory, as these are large files and take some time. if out=$(yamllint -f parsable -c "${SCRIPTDIR}"/yamllint.yaml .github/workflows/*.yml "${files[@]}"); then echo "Congratulations! YAML files are formatted correctly" else echo "${out}" >&2 false fi