Compare commits

..

No commits in common. "0b194baf554f964ecf5e010430eba3d1063741b2" and "0ed0a2d9bba0d7405068a8152523c773e4bad030" have entirely different histories.

5 changed files with 10 additions and 9 deletions

View File

@ -54,9 +54,9 @@ jobs:
playwright: playwright:
name: Web E2E name: Web E2E
runs-on: [self-hosted, evoo-ci, Linux] runs-on: [self-hosted, evoo-ci, Linux]
timeout-minutes: 60 timeout-minutes: 30
concurrency: concurrency:
group: ${{ inputs.publish_report && 'playwright-publication' || format('playwright-{0}', github.run_id) }} group: ${{ inputs.publish_report && 'playwright-publication' || 'evoo-self-hosted-heavy' }}
cancel-in-progress: false cancel-in-progress: false
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5

View File

@ -53,6 +53,10 @@ jobs:
if: github.event_name == 'pull_request' if: github.event_name == 'pull_request'
runs-on: [self-hosted, evoo-ci, Linux] runs-on: [self-hosted, evoo-ci, Linux]
timeout-minutes: 90 timeout-minutes: 90
# Same pool as Web E2E; image builds starve the dev servers Playwright needs.
concurrency:
group: evoo-self-hosted-heavy
cancel-in-progress: false
permissions: permissions:
contents: read contents: read
strategy: strategy:

View File

@ -226,16 +226,14 @@ export async function signup(
name: string, name: string,
testInfo?: TestInfo, testInfo?: TestInfo,
) { ) {
const headingTimeout = process.env.CI ? 15_000 : 5_000;
const retryTimeout = process.env.CI ? 120_000 : 45_000;
await expect(async () => { await expect(async () => {
await page.goto("/sign-up", { waitUntil: "domcontentloaded" }); await page.goto("/sign-up", { waitUntil: "domcontentloaded" });
await expect( await expect(
page.getByRole("heading", { name: /Create your evOo|Dein evOo erstellen/i }), page.getByRole("heading", { name: /Create your evOo|Dein evOo erstellen/i }),
).toBeVisible({ ).toBeVisible({
timeout: headingTimeout, timeout: 5_000,
}); });
}).toPass({ timeout: retryTimeout }); }).toPass({ timeout: 45_000 });
if (testInfo) await captureScreenshot(page, testInfo, "01-sign-up"); if (testInfo) await captureScreenshot(page, testInfo, "01-sign-up");
await page.getByPlaceholder(/Your name|Dein Name/i).fill(name); await page.getByPlaceholder(/Your name|Dein Name/i).fill(name);
await page.getByPlaceholder(/Your email address|Deine E-Mail-Adresse/i).fill(email); await page.getByPlaceholder(/Your email address|Deine E-Mail-Adresse/i).fill(email);

View File

@ -1,7 +1,6 @@
import { defineConfig, devices } from "@playwright/test"; import { defineConfig, devices } from "@playwright/test";
import { isRealSandboxProvider } from "./e2e/helpers"; import { isRealSandboxProvider } from "./e2e/helpers";
const ci = Boolean(process.env.CI);
const webPort = Number(process.env.WEB_PORT ?? 5173); const webPort = Number(process.env.WEB_PORT ?? 5173);
const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? `http://127.0.0.1:${webPort}`; const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? `http://127.0.0.1:${webPort}`;
const realSandbox = isRealSandboxProvider(); const realSandbox = isRealSandboxProvider();
@ -33,6 +32,6 @@ export default defineConfig({
command: "pnpm dev", command: "pnpm dev",
url: baseURL, url: baseURL,
reuseExistingServer: !process.env.CI, reuseExistingServer: !process.env.CI,
timeout: ci ? 180_000 : 120_000, timeout: 120_000,
}, },
}); });

View File

@ -256,7 +256,7 @@ async function main() {
port: apiPort, port: apiPort,
hostname: "127.0.0.1", hostname: "127.0.0.1",
}); });
await waitForHealth(`http://127.0.0.1:${apiPort}/health`, process.env.CI ? 30_000 : 15_000); await waitForHealth(`http://127.0.0.1:${apiPort}/health`, 15_000);
try { try {
execSync("rm -rf apps/web/node_modules/.vite node_modules/.vite", { execSync("rm -rf apps/web/node_modules/.vite node_modules/.vite", {