Add Codex repository guidance and validation
lint / shell-yaml-ansible (push) Failing after 17s

This commit is contained in:
Mateusz Suski
2026-05-10 11:11:03 +00:00
parent 0d3905b8a1
commit a527022518
17 changed files with 935 additions and 23 deletions
+95
View File
@@ -0,0 +1,95 @@
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
STRICT="${STRICT:-0}"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ANSIBLE_DIR="$ROOT_DIR/infra-run/ansible"
ok_count=0
warn_count=0
fail_count=0
ok() {
printf 'OK: %s\n' "$*"
ok_count=$((ok_count + 1))
}
warning() {
printf 'WARNING: %s\n' "$*"
warn_count=$((warn_count + 1))
}
critical() {
printf 'CRITICAL: %s\n' "$*"
fail_count=$((fail_count + 1))
}
if [[ ! -d "$ANSIBLE_DIR" ]]; then
warning "No infra-run/ansible directory found"
printf '\nAnsible summary: %d OK, %d WARNING, %d CRITICAL\n' "$ok_count" "$warn_count" "$fail_count"
exit 0
fi
mapfile -t yaml_files < <(find "$ANSIBLE_DIR" -type f \( -name '*.yml' -o -name '*.yaml' \) -print | sort)
if ((${#yaml_files[@]} == 0)); then
warning "No Ansible YAML files found"
else
ok "Found ${#yaml_files[@]} Ansible YAML files"
fi
if command -v ansible-playbook >/dev/null 2>&1; then
while IFS= read -r playbook; do
[[ -n "$playbook" ]] || continue
playbook_rel="${playbook#"$ANSIBLE_DIR"/}"
if (cd "$ANSIBLE_DIR" && ansible-playbook --syntax-check -i inventory/hosts.yml "$playbook_rel"); then
ok "ansible syntax $playbook_rel"
else
critical "ansible syntax failed $playbook_rel"
fi
done < <(find "$ANSIBLE_DIR/playbooks" -type f \( -name '*.yml' -o -name '*.yaml' \) -print | sort)
else
if [[ "$STRICT" == "1" ]]; then
critical "ansible-playbook not installed"
else
warning "ansible-playbook not installed; skipped syntax checks"
fi
fi
if command -v ansible-lint >/dev/null 2>&1; then
if (cd "$ANSIBLE_DIR" && ansible-lint playbooks roles); then
ok "ansible-lint"
else
critical "ansible-lint reported issues"
fi
else
if [[ "$STRICT" == "1" ]]; then
critical "ansible-lint not installed"
else
warning "ansible-lint not installed; skipped optional lint"
fi
fi
if command -v yamllint >/dev/null 2>&1; then
if yamllint "$ANSIBLE_DIR"; then
ok "yamllint infra-run/ansible"
else
critical "yamllint reported issues in infra-run/ansible"
fi
else
if [[ "$STRICT" == "1" ]]; then
critical "yamllint not installed"
else
warning "yamllint not installed; skipped optional YAML lint"
fi
fi
printf '\nAnsible summary: %d OK, %d WARNING, %d CRITICAL\n' "$ok_count" "$warn_count" "$fail_count"
if ((fail_count > 0)); then
exit 1
fi
exit 0