Files
EventHubFrontAdmin/scripts/load-stand-smoke-env.sh
aleksey 840f06e68e
CI / test (push) Successful in 2m21s
CI / push-image (push) Successful in 4m7s
CI / ci-done (push) Successful in 0s
feat(ci): последовательный deploy IFT -> E2E -> stage -> E2E.
Stage деплоится только после полного UI-сьюта на IFT; после stage — E2E на stage (ift-ui/stage-ui + smoke).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:31:22 +03:00

53 lines
1.7 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Load SMOKE_ADMIN_* (fallback ADMIN_SUPER_*) from stand .env via SSH into GITHUB_ENV.
# Usage: load-stand-smoke-env.sh <ift|stage>
set -euo pipefail
STAND="${1:?stand: ift|stage}"
case "${STAND}" in
ift)
SSH_HOST="${SSH_HOST:?IFT_SSH_HOST required}"
SSH_USER="${SSH_USER:?IFT_SSH_USER required}"
SSH_KEY="${SSH_KEY:?IFT_SSH_PRIVATE_KEY required}"
ENV_FILE="/opt/eventhub-ift/.env"
;;
stage)
SSH_HOST="${SSH_HOST:?STAGE_SSH_HOST required}"
SSH_USER="${SSH_USER:?STAGE_SSH_USER required}"
SSH_KEY="${SSH_KEY:?STAGE_SSH_PRIVATE_KEY required}"
ENV_FILE="/opt/eventhub-stage/.env"
;;
*)
echo "Unknown stand: ${STAND}"
exit 1
;;
esac
KEY="$(mktemp)"
printf '%s\n' "${SSH_KEY}" > "${KEY}"
chmod 600 "${KEY}"
REMOTE="$(ssh -i "${KEY}" -o BatchMode=yes -o StrictHostKeyChecking=accept-new \
"${SSH_USER}@${SSH_HOST}" \
"grep -E '^(SMOKE_ADMIN_EMAIL|SMOKE_ADMIN_PASSWORD|ADMIN_SUPER_EMAIL|ADMIN_SUPER_PASSWORD)=' ${ENV_FILE} || true")"
rm -f "${KEY}"
EMAIL="$(printf '%s\n' "${REMOTE}" | sed -n 's/^SMOKE_ADMIN_EMAIL=//p' | head -1)"
PASS="$(printf '%s\n' "${REMOTE}" | sed -n 's/^SMOKE_ADMIN_PASSWORD=//p' | head -1)"
if [[ -z "${EMAIL}" ]]; then
EMAIL="$(printf '%s\n' "${REMOTE}" | sed -n 's/^ADMIN_SUPER_EMAIL=//p' | head -1)"
fi
if [[ -z "${PASS}" ]]; then
PASS="$(printf '%s\n' "${REMOTE}" | sed -n 's/^ADMIN_SUPER_PASSWORD=//p' | head -1)"
fi
if [[ -z "${EMAIL}" || -z "${PASS}" ]]; then
echo "::error::В ${ENV_FILE} нет SMOKE_ADMIN_* / ADMIN_SUPER_*"
exit 1
fi
if [[ -n "${GITHUB_ENV:-}" ]]; then
echo "SMOKE_ADMIN_EMAIL=${EMAIL}" >> "${GITHUB_ENV}"
echo "SMOKE_ADMIN_PASSWORD=${PASS}" >> "${GITHUB_ENV}"
fi
echo "Loaded smoke admin email: ${EMAIL}"