first commit
This commit is contained in:
148
scripts/run_validation_batch.sh
Normal file
148
scripts/run_validation_batch.sh
Normal file
@@ -0,0 +1,148 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
BATCH="${1:-all}"
|
||||
ENV_FILE="${2:-}"
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
load_env_file() {
|
||||
local env_file="$1"
|
||||
|
||||
if [[ -z "${env_file}" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ ! -f "${env_file}" ]]; then
|
||||
echo "Env file not found: ${env_file}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1090
|
||||
source "${env_file}"
|
||||
set +a
|
||||
}
|
||||
|
||||
check_required_vars() {
|
||||
local batch_name="$1"
|
||||
shift
|
||||
local missing=()
|
||||
local var_name value
|
||||
|
||||
for var_name in "$@"; do
|
||||
value="${!var_name:-}"
|
||||
if [[ -z "${value}" ]]; then
|
||||
missing+=("${var_name}")
|
||||
fi
|
||||
done
|
||||
|
||||
if (( ${#missing[@]} > 0 )); then
|
||||
echo ""
|
||||
echo "Missing required env for ${batch_name}:"
|
||||
printf ' - %s\n' "${missing[@]}"
|
||||
echo ""
|
||||
echo "Tip:"
|
||||
echo " Copy scripts/.env.validation.example and fill the required values."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
run_validation_smoke() {
|
||||
check_required_vars "validation smoke" API_BASE_URL ACCESS_TOKEN
|
||||
echo ""
|
||||
echo ">>> Batch 1 / Batch 2: validation_smoke_test.sh"
|
||||
bash "${ROOT_DIR}/scripts/validation_smoke_test.sh"
|
||||
}
|
||||
|
||||
run_editor_smoke() {
|
||||
check_required_vars "editor smoke" API_BASE_URL ACCESS_TOKEN VARIANT_ID BASE_URL
|
||||
echo ""
|
||||
echo ">>> Batch 3: editor_smoke_test.sh"
|
||||
bash "${ROOT_DIR}/scripts/editor_smoke_test.sh"
|
||||
}
|
||||
|
||||
run_runtime_smoke() {
|
||||
check_required_vars \
|
||||
"runtime smoke" \
|
||||
API_BASE_URL \
|
||||
PAGE_URL \
|
||||
EXPERIMENT_ID \
|
||||
EXPERIMENT_KEY \
|
||||
VARIANT_ID \
|
||||
VARIANT_KEY
|
||||
|
||||
if [[ -z "${SITE_ID:-}" && -z "${SITE_KEY:-}" ]]; then
|
||||
echo ""
|
||||
echo "Missing required env for runtime smoke:"
|
||||
echo " - SITE_ID or SITE_KEY"
|
||||
echo ""
|
||||
echo "Tip:"
|
||||
echo " Provide at least one of SITE_ID / SITE_KEY in your validation env."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ">>> Batch 4: runtime_smoke_test.sh"
|
||||
bash "${ROOT_DIR}/scripts/runtime_smoke_test.sh"
|
||||
}
|
||||
|
||||
print_usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
bash scripts/run_validation_batch.sh <batch> [env-file]
|
||||
|
||||
Available batch values:
|
||||
batch1 Run health/auth smoke
|
||||
batch2 Run admin data smoke
|
||||
batch3 Run editor smoke
|
||||
batch4 Run runtime smoke
|
||||
batch1-3 Run batch1 + batch2 + batch3
|
||||
all Run batch1 + batch2 + batch3 + batch4
|
||||
|
||||
Recommended:
|
||||
1. copy scripts/.env.validation.example to your own env file
|
||||
2. fill real staging values
|
||||
3. run batch1-3 first
|
||||
4. pass the env file path as the second argument
|
||||
EOF
|
||||
}
|
||||
|
||||
load_env_file "${ENV_FILE}"
|
||||
|
||||
case "${BATCH}" in
|
||||
batch1)
|
||||
run_validation_smoke
|
||||
;;
|
||||
batch2)
|
||||
run_validation_smoke
|
||||
;;
|
||||
batch3)
|
||||
run_editor_smoke
|
||||
;;
|
||||
batch4)
|
||||
run_runtime_smoke
|
||||
;;
|
||||
batch1-3)
|
||||
run_validation_smoke
|
||||
run_editor_smoke
|
||||
;;
|
||||
all)
|
||||
run_validation_smoke
|
||||
run_editor_smoke
|
||||
run_runtime_smoke
|
||||
;;
|
||||
help|-h|--help)
|
||||
print_usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown batch: ${BATCH}"
|
||||
echo ""
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "Validation batch '${BATCH}' completed."
|
||||
Reference in New Issue
Block a user