Files
EventHubFrontAdmin/playwright.config.ts
T
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

63 lines
1.8 KiB
TypeScript

import { defineConfig, devices } from '@playwright/test';
const port = Number(process.env.E2E_PORT || 4173);
const baseURL = process.env.E2E_BASE_URL || `http://127.0.0.1:${port}`;
const iftBaseURL = process.env.E2E_IFT_BASE_URL || 'https://admin-ui.ift.eventhub.local';
const stageBaseURL = process.env.E2E_STAGE_BASE_URL || 'https://admin-ui.stage.eventhub.local';
const liveTarget = process.env.E2E_TARGET;
const liveChrome = {
...devices['Desktop Chrome'],
ignoreHTTPSErrors: true,
};
export default defineConfig({
testDir: './e2e/tests',
fullyParallel: false,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 1 : 0,
workers: 1,
reporter: process.env.CI ? [['list'], ['html', { open: 'never' }]] : 'list',
timeout: 90_000,
expect: { timeout: 10_000 },
use: {
baseURL,
trace: 'on-first-retry',
locale: 'ru-RU',
},
projects: [
{
name: 'mock',
use: { ...devices['Desktop Chrome'] },
testIgnore: /ift\//,
},
{
name: 'ift-ui',
use: { ...liveChrome, baseURL: iftBaseURL },
testIgnore: /ift\//,
},
{
name: 'ift-smoke',
use: { ...liveChrome, baseURL: iftBaseURL },
testMatch: /ift\//,
},
{
name: 'stage-ui',
use: { ...liveChrome, baseURL: stageBaseURL },
testIgnore: /ift\//,
},
{
name: 'stage-smoke',
use: { ...liveChrome, baseURL: stageBaseURL },
testMatch: /ift\//,
},
],
webServer: liveTarget
? undefined
: {
command: `npm run preview -- --host 127.0.0.1 --port ${port}`,
url: baseURL,
reuseExistingServer: !process.env.CI,
timeout: 120_000,
},
});