30 lines
911 B
Bash
30 lines
911 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# DEVOPS-CLI-43-002: chaos smoke for Task Pack commands
|
|
|
|
CLI=${CLI:-"dotnet run --project src/Cli/StellaOps.Cli/StellaOps.Cli.csproj --no-build --"}
|
|
RESULTS="out/cli-chaos"
|
|
mkdir -p "$RESULTS"
|
|
|
|
PACK="${PACK:-tests/fixtures/task-packs/sample-pack.yaml}"
|
|
RANDOM_FAIL=${RANDOM_FAIL:-true}
|
|
SEALED=${SEALED:-false}
|
|
|
|
echo "[chaos] running pack=$PACK random_fail=$RANDOM_FAIL sealed=$SEALED"
|
|
|
|
set +e
|
|
$CLI task-runner run --pack "$PACK" ${SEALED:+--sealed} ${RANDOM_FAIL:+--chaos-random-fail} >"$RESULTS/run.log" 2>&1
|
|
status=$?
|
|
set -e
|
|
|
|
echo "exit_code=$status" > "$RESULTS/metadata.txt"
|
|
|
|
if [[ $status -ne 0 && "$RANDOM_FAIL" == "true" ]]; then
|
|
echo "[chaos] attempting resume after failure"
|
|
$CLI task-runner resume --pack "$PACK" >>"$RESULTS/run.log" 2>&1 || true
|
|
fi
|
|
|
|
tar -C "$RESULTS" -czf "$RESULTS/evidence.tgz" .
|
|
echo "[chaos] evidence archived at $RESULTS/evidence.tgz"
|