fix(admin): IFT smoke credentials from stand .env via SSH. Refs EventHub/EventHubFrontAdmin#33 #39
CI / test (push) Failing after 1m26s
CI / push-image (push) Has been skipped
CI / ci-done (push) Failing after 0s

This commit is contained in:
2026-07-14 23:41:01 +03:00
parent 607209b35f
commit 79bf7de4f2
3 changed files with 63 additions and 23 deletions
+35 -11
View File
@@ -1,8 +1,9 @@
name: E2E IFT smoke (admin)
# После успешного Deploy IFT — smoke против живого IFT (без API-моков).
# Secrets (repo EventHubFrontAdmin): E2E_ADMIN_EMAIL, E2E_ADMIN_PASSWORD;
# опционально E2E_IFT_BASE_URL (default https://admin-ui.ift.eventhub.local).
# Учётки берутся с хоста IFT из /opt/eventhub-ift/.env
# (SMOKE_ADMIN_* → fallback ADMIN_SUPER_*; см. EventHubDevOps/ift/.env.example).
# Опц. secret E2E_IFT_BASE_URL (default https://admin-ui.ift.eventhub.local).
on:
workflow_run:
workflows: ["Deploy IFT (admin)"]
@@ -34,19 +35,42 @@ jobs:
- name: Install Playwright browser
run: npx playwright install --with-deps chromium
- name: Load smoke credentials from IFT .env
env:
SSH_HOST: ${{ secrets.IFT_SSH_HOST }}
SSH_USER: ${{ secrets.IFT_SSH_USER }}
SSH_KEY: ${{ secrets.IFT_SSH_PRIVATE_KEY }}
run: |
set -euo pipefail
KEY=$(mktemp)
printf '%s\n' "$SSH_KEY" > "$KEY"
chmod 600 "$KEY"
# Источник истины — env на стенде (не отдельные Gitea E2E secrets).
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)=' /opt/eventhub-ift/.env || 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::В /opt/eventhub-ift/.env нет SMOKE_ADMIN_* / ADMIN_SUPER_*"
exit 1
fi
echo "SMOKE_ADMIN_EMAIL=${EMAIL}" >> "$GITHUB_ENV"
echo "SMOKE_ADMIN_PASSWORD=${PASS}" >> "$GITHUB_ENV"
echo "Loaded smoke admin email: ${EMAIL}"
- name: IFT smoke
env:
E2E_TARGET: ift
E2E_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL }}
E2E_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD }}
E2E_IFT_BASE_URL: ${{ secrets.E2E_IFT_BASE_URL }}
run: |
set -euo pipefail
if [ -z "${E2E_ADMIN_EMAIL:-}" ] || [ -z "${E2E_ADMIN_PASSWORD:-}" ]; then
echo "::error::Нужны secrets E2E_ADMIN_EMAIL и E2E_ADMIN_PASSWORD"
exit 1
fi
npm run test:e2e:ift
run: npm run test:e2e:ift
- name: Upload Playwright report
if: failure()