#!/usr/bin/env bash set -euo pipefail root=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd) tmp=$(mktemp -d) trap 'rm -rf "$tmp"' EXIT script=$root/scripts/cluster/run-production-acceptance.sh awk ' /^is_release_ancestor\(\)/ { capture = 1 } capture && /^create_and_activate_run\(\)/ { exit } capture { print } ' "$script" >"$tmp/is-release-ancestor.sh" # shellcheck source=/dev/null source "$tmp/is-release-ancestor.sh" cluster_root=$tmp/repository git init -q "$cluster_root" git -C "$cluster_root" config user.name 'Acceptance Script Test' git -C "$cluster_root" config user.email 'acceptance-script-test@example.invalid' git -C "$cluster_root" commit --allow-empty -qm first first=$(git -C "$cluster_root" rev-parse HEAD) git -C "$cluster_root" commit --allow-empty -qm second git -C "$cluster_root" commit --allow-empty -qm third third=$(git -C "$cluster_root" rev-parse HEAD) is_release_ancestor "$first" "$third" if is_release_ancestor "$third" "$first"; then echo 'descendant release was accepted as an ancestor' >&2 exit 1 fi if is_release_ancestor invalid "$third"; then echo 'invalid release identifier was accepted as an ancestor' >&2 exit 1 fi echo 'production_acceptance_script_tests=PASS'