#!/usr/bin/env bash set -euo pipefail repository_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) workspace_venv="$repository_root/../.venv" test_tmp=$(mktemp -d) chmod 0700 "$test_tmp" export ANSIBLE_COLLECTIONS_PATH="$test_tmp/collections" export ANSIBLE_ROLES_PATH="$(dirname "$repository_root")" inventory="$repository_root/tests/inventory" converge="$repository_root/tests/converge.yml" verify="$repository_root/tests/verify.yml" ansible_playbook="$workspace_venv/bin/ansible-playbook" default_commit=a84941d68168a1ed9ea7423b6477ae8218be73f9 cleanup() { rm -rf -- "$test_tmp" } trap cleanup EXIT require_clean_recap() { grep -Eq 'changed=0 .*failed=0' "$1" } cd "$repository_root" "$workspace_venv/bin/ansible-galaxy" collection install \ -r collections/requirements.yml \ -p "$ANSIBLE_COLLECTIONS_PATH" "$ansible_playbook" -i "$inventory" --syntax-check "$converge" "$workspace_venv/bin/ansible-lint" "$converge" "$verify" baseline_log="$test_tmp/baseline.log" "$ansible_playbook" -i "$inventory" "$converge" | tee "$baseline_log" "$ansible_playbook" -i "$inventory" \ -e "audita_expected_commit=$default_commit" \ "$verify" baseline_repeat_log="$test_tmp/baseline-repeat.log" "$ansible_playbook" -i "$inventory" "$converge" | tee "$baseline_repeat_log" require_clean_recap "$baseline_repeat_log"