From 18dd1400bdc14287c7e5f40808e374163618b9fd Mon Sep 17 00:00:00 2001 From: Corentin THOMASSET Date: Sun, 3 Sep 2023 16:28:19 +0200 Subject: [PATCH] refactor(CI): run e2e against built app and no longer vercel (#610) --- .github/workflows/ci.yml | 2 -- .github/workflows/e2e-tests.yml | 13 ++++++++----- package.json | 3 ++- playwright.config.ts | 19 ++++++++++--------- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 611b7e6f..5f5a9b6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,6 +31,4 @@ jobs: run: pnpm typecheck - name: Build the app - env: - NODE_OPTIONS: --max-old-space-size=4096 run: pnpm build diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index ced3bbde..d55e7785 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -1,13 +1,13 @@ name: E2E tests -on: [deployment_status] - +on: + pull_request: + push: + branches: + - main jobs: test: - if: github.event.deployment_status.state == 'success' timeout-minutes: 60 runs-on: ubuntu-latest - env: - BASE_URL: ${{ github.event.deployment_status.target_url }} strategy: matrix: shard: [1/3, 2/3, 3/3] @@ -28,6 +28,9 @@ jobs: - name: Install dependencies run: pnpm install + - name: Build app + run: pnpm build + - name: Restore Playwright browsers from cache uses: actions/cache@v3 with: diff --git a/package.json b/package.json index a835df09..977e31ef 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,12 @@ }, "scripts": { "dev": "vite", - "build": "vue-tsc --noEmit && vite build", + "build": "vue-tsc --noEmit && NODE_OPTIONS=--max_old_space_size=4096 vite build", "preview": "vite preview --port 5050", "test": "npm run test:unit", "test:unit": "vitest --environment jsdom", "test:e2e": "playwright test", + "test:e2e:dev": "BASE_URL=http://localhost:5173 NO_WEB_SERVER=true playwright test", "coverage": "vitest run --coverage", "typecheck": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", "lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore", diff --git a/playwright.config.ts b/playwright.config.ts index 47fa0cea..3caa0612 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -2,6 +2,7 @@ import { defineConfig, devices } from '@playwright/test'; const isCI = !!process.env.CI; const baseUrl = process.env.BASE_URL || 'http://localhost:5050'; +const useWebServer = process.env.NO_WEB_SERVER !== 'true'; /** * See https://playwright.dev/docs/test-configuration. @@ -52,13 +53,13 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ - ...(isCI - ? {} - : { - webServer: { - command: 'npm run preview', - url: 'http://127.0.0.1:5050', - reuseExistingServer: true, - }, - }), + ...(useWebServer + && { + webServer: { + command: 'npm run preview', + url: 'http://127.0.0.1:5050', + reuseExistingServer: !isCI, + }, + } + ), });