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>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#!/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}"
|
||||
Reference in New Issue
Block a user