test(gate): optional ARCHY_GATE_CASCADE pass — wire the cascade tier in
run-gate.sh ran only the DESTRUCTIVE tier; the cascade-uninstall suite (uninstall→no-ghost→reinstall, the #13/#14/uninstall-hang regression guard) existed but was never enabled by the gate. Add an opt-in single cascade pass after the 5× loop (ARCHY_GATE_CASCADE=1, requires ARCHY_ALLOW_DESTRUCTIVE=1), counted into the pass/fail tally. Kept out of the 5× loop deliberately — uninstall/reinstall every iteration would balloon runtime and re-pull images; one pass guards the class. Default gate behavior unchanged. Validated: cascade-uninstall.bats 7/7 on .228. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
292a2650df
commit
b7d9210784
@ -8,6 +8,9 @@
|
|||||||
# Env:
|
# Env:
|
||||||
# ARCHY_ITERATIONS (default: 5)
|
# ARCHY_ITERATIONS (default: 5)
|
||||||
# ARCHY_FAIL_FAST=1 stop on first failed iteration
|
# ARCHY_FAIL_FAST=1 stop on first failed iteration
|
||||||
|
# ARCHY_GATE_CASCADE=1 after the 5× loop, run ONE cascade pass
|
||||||
|
# (uninstall→no-ghost→reinstall a throwaway
|
||||||
|
# app); requires ARCHY_ALLOW_DESTRUCTIVE=1
|
||||||
# plus everything run.sh / lib/rpc.bash respects
|
# plus everything run.sh / lib/rpc.bash respects
|
||||||
# (ARCHY_PASSWORD, ARCHY_HOST, ARCHY_SCHEME, ARCHY_ALLOW_DESTRUCTIVE,
|
# (ARCHY_PASSWORD, ARCHY_HOST, ARCHY_SCHEME, ARCHY_ALLOW_DESTRUCTIVE,
|
||||||
# ARCHY_ALLOW_CASCADE_DESTRUCTIVE, ARCHY_ALLOW_NOAUTH)
|
# ARCHY_ALLOW_CASCADE_DESTRUCTIVE, ARCHY_ALLOW_NOAUTH)
|
||||||
@ -20,6 +23,10 @@
|
|||||||
# Suggested release-gate invocation:
|
# Suggested release-gate invocation:
|
||||||
# ARCHY_PASSWORD=password123 ARCHY_ALLOW_DESTRUCTIVE=1 \
|
# ARCHY_PASSWORD=password123 ARCHY_ALLOW_DESTRUCTIVE=1 \
|
||||||
# tests/lifecycle/run-gate.sh
|
# tests/lifecycle/run-gate.sh
|
||||||
|
#
|
||||||
|
# Release-gate WITH the cascade tier (uninstall/reinstall regression guard):
|
||||||
|
# ARCHY_PASSWORD=password123 ARCHY_ALLOW_DESTRUCTIVE=1 ARCHY_GATE_CASCADE=1 \
|
||||||
|
# tests/lifecycle/run-gate.sh
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@ -100,6 +107,27 @@ for i in $(seq 1 "$ITER"); do
|
|||||||
./setup-teardown.sh
|
./setup-teardown.sh
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Optional CASCADE pass — uninstall → no-ghost → reinstall of a throwaway app
|
||||||
|
# (default grafana, via cascade-uninstall.bats). Run ONCE, not folded into the
|
||||||
|
# 5× loop on purpose: uninstall/reinstall every iteration would balloon runtime
|
||||||
|
# and re-pull images. One pass gates the #13 ghost / #14 reinstall-stop /
|
||||||
|
# uninstall-hang class (the bug fixed in 71cc9ac4). Opt-in so default gate
|
||||||
|
# behavior is unchanged; counts into the pass/fail tally.
|
||||||
|
if [[ "${ARCHY_GATE_CASCADE:-0}" == "1" && "${ARCHY_ALLOW_DESTRUCTIVE:-0}" == "1" ]]; then
|
||||||
|
echo
|
||||||
|
echo "═══ CASCADE pass (1×) ═══"
|
||||||
|
settle_stack
|
||||||
|
if ARCHY_ALLOW_CASCADE_DESTRUCTIVE=1 ./run.sh cascade-uninstall; then
|
||||||
|
passed=$((passed + 1))
|
||||||
|
echo "── CASCADE: PASS ──"
|
||||||
|
else
|
||||||
|
failed=$((failed + 1))
|
||||||
|
failures+=("cascade")
|
||||||
|
echo "── CASCADE: FAIL ──"
|
||||||
|
fi
|
||||||
|
./setup-teardown.sh
|
||||||
|
fi
|
||||||
|
|
||||||
end=$(date +%s)
|
end=$(date +%s)
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user