diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 299ed59cd220..5fc8f9d55e5c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1018,12 +1018,12 @@ jobs: - name: Build E2E app working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 7 run: pnpm ${{ matrix.build-command || 'test:build' }} - name: Run E2E test working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 10 run: pnpm test:assert - name: Upload Playwright Traces @@ -1039,7 +1039,7 @@ jobs: uses: actions/upload-artifact@v4 if: always() with: - name: playwright-event-dumps-job_e2e_playwright_tests-${{ matrix.test-application }} + name: e2e-test-event-dumps path: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/event-dumps overwrite: true retention-days: 7 @@ -1176,12 +1176,12 @@ jobs: - name: Build E2E app working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 7 run: pnpm ${{ matrix.build-command || 'test:build' }} - name: Run E2E test working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 10 run: pnpm ${{ matrix.assert-command || 'test:assert' }} - name: Deploy Astro to Cloudflare @@ -1282,12 +1282,12 @@ jobs: - name: Build E2E app working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 7 run: yarn ${{ matrix.build-command || 'test:build' }} - name: Run E2E test working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 10 run: yarn test:assert job_required_jobs_passed: diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml index 1f584d2a921c..4b8fff855049 100644 --- a/.github/workflows/canary.yml +++ b/.github/workflows/canary.yml @@ -140,7 +140,7 @@ jobs: - name: Build E2E app working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }} - timeout-minutes: 5 + timeout-minutes: 7 run: yarn ${{ matrix.build-command }} - name: Run E2E test diff --git a/dev-packages/e2e-tests/test-applications/nextjs-13/.gitignore b/dev-packages/e2e-tests/test-applications/nextjs-13/.gitignore index b7a8bf3b3701..68d4c4a9cbf2 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-13/.gitignore +++ b/dev-packages/e2e-tests/test-applications/nextjs-13/.gitignore @@ -38,5 +38,6 @@ next-env.d.ts !*.d.ts test-results +event-dumps .vscode diff --git a/dev-packages/e2e-tests/test-applications/nextjs-13/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/nextjs-13/start-event-proxy.mjs index 9983d484bcbc..b45472a5484f 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-13/start-event-proxy.mjs +++ b/dev-packages/e2e-tests/test-applications/nextjs-13/start-event-proxy.mjs @@ -1,6 +1,14 @@ +import * as fs from 'fs'; +import * as path from 'path'; import { startEventProxyServer } from '@sentry-internal/test-utils'; +const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'))); + startEventProxyServer({ port: 3031, proxyServerName: 'nextjs-13', + envelopeDumpPath: path.join( + process.cwd(), + `event-dumps/next-13-v${packageJson.dependencies.next}-${process.env.TEST_ENV}.dump`, + ), }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/.gitignore b/dev-packages/e2e-tests/test-applications/nextjs-14/.gitignore index e799cc33c4e7..ebdbfc025b6a 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/.gitignore +++ b/dev-packages/e2e-tests/test-applications/nextjs-14/.gitignore @@ -43,3 +43,4 @@ next-env.d.ts .vscode test-results +event-dumps diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/nextjs-14/start-event-proxy.mjs index 39babfb19b2a..7e0ebce43981 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/start-event-proxy.mjs +++ b/dev-packages/e2e-tests/test-applications/nextjs-14/start-event-proxy.mjs @@ -1,6 +1,14 @@ +import * as fs from 'fs'; +import * as path from 'path'; import { startEventProxyServer } from '@sentry-internal/test-utils'; +const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'))); + startEventProxyServer({ port: 3031, proxyServerName: 'nextjs-14', + envelopeDumpPath: path.join( + process.cwd(), + `event-dumps/next-14-v${packageJson.dependencies.next}-${process.env.TEST_ENV}.dump`, + ), }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/nextjs-15/start-event-proxy.mjs index 959b40d253e8..d78a76402bbb 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/start-event-proxy.mjs +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/start-event-proxy.mjs @@ -9,6 +9,6 @@ startEventProxyServer({ proxyServerName: 'nextjs-15', envelopeDumpPath: path.join( process.cwd(), - `event-dumps/next-${packageJson.dependencies.next}-${process.env.TEST_ENV}.dump`, + `event-dumps/next-15-v${packageJson.dependencies.next}-${process.env.TEST_ENV}.dump`, ), }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/.gitignore b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/.gitignore index e799cc33c4e7..ebdbfc025b6a 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/.gitignore +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/.gitignore @@ -43,3 +43,4 @@ next-env.d.ts .vscode test-results +event-dumps diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.mjs index 7e8016bf98a5..c243a72b8f07 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.mjs +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.mjs @@ -1,6 +1,14 @@ +import * as fs from 'fs'; +import * as path from 'path'; import { startEventProxyServer } from '@sentry-internal/test-utils'; +const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'))); + startEventProxyServer({ port: 3031, proxyServerName: 'nextjs-app-dir', + envelopeDumpPath: path.join( + process.cwd(), + `event-dumps/next-app-dir-v${packageJson.dependencies.next}-${process.env.TEST_ENV}.dump`, + ), }); diff --git a/dev-packages/test-utils/src/event-proxy-server.ts b/dev-packages/test-utils/src/event-proxy-server.ts index 448dd6e34ef0..6508dd9e5a0c 100644 --- a/dev-packages/test-utils/src/event-proxy-server.ts +++ b/dev-packages/test-utils/src/event-proxy-server.ts @@ -171,6 +171,11 @@ export async function startProxyServer( export async function startEventProxyServer(options: EventProxyServerOptions): Promise { if (options.envelopeDumpPath) { await fs.promises.mkdir(path.dirname(path.resolve(options.envelopeDumpPath)), { recursive: true }); + try { + await fs.promises.unlink(path.resolve(options.envelopeDumpPath)); + } catch { + // noop + } } await startProxyServer(options, async (eventCallbackListeners, proxyRequest, proxyRequestBody, eventBuffer) => {