#!/usr/bin/env bash set -euo pipefail repository_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) workspace_venv="$repository_root/../.venv" test_tmp=$(mktemp -d) trap 'rm -rf -- "$test_tmp"' EXIT 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" cd "$repository_root" "$workspace_venv/bin/ansible-galaxy" collection install \ -r collections/requirements.yml \ -p "$ANSIBLE_COLLECTIONS_PATH" "$workspace_venv/bin/ansible-playbook" -i "$inventory" --syntax-check "$converge" "$workspace_venv/bin/ansible-lint" "$converge" "$verify" "$workspace_venv/bin/ansible-playbook" -i "$inventory" "$converge" "$workspace_venv/bin/ansible-playbook" -i "$inventory" "$verify" repeat_output="$test_tmp/repeat.log" "$workspace_venv/bin/ansible-playbook" -i "$inventory" "$converge" | tee "$repeat_output" grep -Eq 'changed=0 .*failed=0' "$repeat_output"