name: E2E IFT (admin) # После успешного Deploy IFT — интеграционный UI-сьют против живого admin-api (без mocks). # Учётки smoke — из /opt/eventhub-ift/.env по SSH (SMOKE_ADMIN_* / ADMIN_SUPER_*). on: workflow_run: workflows: ["Deploy IFT (admin)"] types: [completed] workflow_dispatch: concurrency: group: eventhub-frontadmin-e2e-ift cancel-in-progress: false jobs: ift-e2e: if: | github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') runs-on: ubuntu-latest timeout-minutes: 45 steps: - uses: actions/checkout@v4 with: ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }} - uses: actions/setup-node@v4 with: node-version: '22' - run: npm ci - name: Install Playwright browser run: bash scripts/install-playwright-chromium.sh - 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: bash scripts/load-stand-smoke-env.sh ift - name: E2E IFT (integration, live API) env: E2E_TARGET: ift E2E_IFT_BASE_URL: ${{ secrets.E2E_IFT_BASE_URL }} run: npm run test:e2e:ift - name: Upload Playwright report if: failure() uses: actions/upload-artifact@v3 with: name: playwright-ift-report path: playwright-report/ retention-days: 7