diff --git a/.github/workflows/tests_grid.yml b/.github/workflows/tests_grid.yml new file mode 100644 index 0000000000..d19bcfa13f --- /dev/null +++ b/.github/workflows/tests_grid.yml @@ -0,0 +1,24 @@ +name: "tests grid" + +on: + workflow_dispatch: + +env: + FORCE_COLOR: 1 + ELECTRON_SKIP_BINARY_DOWNLOAD: 1 + +jobs: + test: + name: "Grid" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + - run: npm ci + env: + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 + - run: npm run build + - run: npx playwright install + - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --retries=0 + env: + PWTEST_MODE: service-grid diff --git a/tests/config/browserTest.ts b/tests/config/browserTest.ts index 789f887250..10116e08cb 100644 --- a/tests/config/browserTest.ts +++ b/tests/config/browserTest.ts @@ -53,7 +53,8 @@ const test = baseTest.extend await run(browser.version()); }, { scope: 'worker' }], - browserType: [async ({ playwright, browserName }, run) => { + browserType: [async ({ playwright, browserName, mode }, run) => { + test.skip(mode.startsWith('service')); await run(playwright[browserName]); }, { scope: 'worker' }], @@ -108,8 +109,7 @@ const test = baseTest.extend await removeFolders(dirs); }, - launchPersistent: async ({ createUserDataDir, browserType, mode }, run) => { - test.skip(mode.startsWith('service')); + launchPersistent: async ({ createUserDataDir, browserType }, run) => { let persistentContext: BrowserContext | undefined; await run(async options => { if (persistentContext) @@ -123,8 +123,7 @@ const test = baseTest.extend await persistentContext.close(); }, - startRemoteServer: async ({ childProcess, browserType, mode }, run) => { - test.skip(mode.startsWith('service')); + startRemoteServer: async ({ childProcess, browserType }, run) => { let server: PlaywrightServer | undefined; const fn = async (kind: 'launchServer' | 'run-server', options?: RemoteServerOptions) => { if (server) diff --git a/tests/config/traceViewerFixtures.ts b/tests/config/traceViewerFixtures.ts index fc51c5106d..70d81b8997 100644 --- a/tests/config/traceViewerFixtures.ts +++ b/tests/config/traceViewerFixtures.ts @@ -107,7 +107,7 @@ class TraceViewerPage { } export const traceViewerFixtures: Fixtures = { - showTraceViewer: async ({ playwright, browserName, headless }, use) => { + showTraceViewer: async ({ playwright, browserName, headless }, use, testInfo) => { const browsers: Browser[] = []; const contextImpls: any[] = []; await use(async (traces: string[], { host, port } = {}) => { diff --git a/tests/library/trace-viewer.spec.ts b/tests/library/trace-viewer.spec.ts index 7bb82613dd..901a4dce2f 100644 --- a/tests/library/trace-viewer.spec.ts +++ b/tests/library/trace-viewer.spec.ts @@ -24,6 +24,7 @@ import type { FrameLocator } from '@playwright/test'; const test = playwrightTest.extend(traceViewerFixtures); test.skip(({ trace }) => trace === 'on'); +test.skip(({ mode }) => mode.startsWith('service')); test.slow(); let traceFile: string;