Skip to content

Commit 29d81ef

Browse files
Copilot0xrinegade
andcommitted
Fix CI E2E test failures: proper browser installation and localhost server startup
Co-authored-by: 0xrinegade <[email protected]>
1 parent d95cc02 commit 29d81ef

File tree

4 files changed

+768
-15
lines changed

4 files changed

+768
-15
lines changed

.github/workflows/comprehensive-e2e-testing.yml

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,14 @@ jobs:
7272
path: ${{ env.PLAYWRIGHT_BROWSERS_PATH }}
7373
key: playwright-browsers-${{ matrix.browser }}-${{ hashFiles('package-lock.json') }}
7474

75+
- name: Build application for local testing
76+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
77+
run: yarn build
78+
7579
- name: Start local server (if testing locally)
76-
if: github.event.inputs.environment == 'local'
80+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
7781
run: |
78-
npm run start &
82+
yarn build && npx serve -s build -l 3000 &
7983
npx wait-on http://localhost:3000 --timeout 120000
8084
8185
- name: Run comprehensive E2E tests
@@ -119,10 +123,14 @@ jobs:
119123
- name: Install Playwright
120124
run: npx playwright install chromium --with-deps
121125

126+
- name: Build application for local testing
127+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
128+
run: yarn build
129+
122130
- name: Start local server (if testing locally)
123-
if: github.event.inputs.environment == 'local'
131+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
124132
run: |
125-
npm run start &
133+
yarn build && npx serve -s build -l 3000 &
126134
npx wait-on http://localhost:3000 --timeout 120000
127135
128136
- name: Run visual regression tests
@@ -164,10 +172,14 @@ jobs:
164172
- name: Install Playwright
165173
run: npx playwright install chromium --with-deps
166174

175+
- name: Build application for local testing
176+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
177+
run: yarn build
178+
167179
- name: Start local server (if testing locally)
168-
if: github.event.inputs.environment == 'local'
180+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
169181
run: |
170-
npm run start &
182+
yarn build && npx serve -s build -l 3000 &
171183
npx wait-on http://localhost:3000 --timeout 120000
172184
173185
- name: Run performance tests
@@ -218,10 +230,14 @@ jobs:
218230
- name: Install Playwright
219231
run: npx playwright install chromium --with-deps
220232

233+
- name: Build application for local testing
234+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
235+
run: yarn build
236+
221237
- name: Start local server (if testing locally)
222-
if: github.event.inputs.environment == 'local'
238+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
223239
run: |
224-
npm run start &
240+
yarn build && npx serve -s build -l 3000 &
225241
npx wait-on http://localhost:3000 --timeout 120000
226242
227243
- name: Run mobile UX tests
@@ -264,10 +280,14 @@ jobs:
264280
npx playwright install chromium --with-deps
265281
npm install -g axe-core @axe-core/playwright
266282
283+
- name: Build application for local testing
284+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
285+
run: yarn build
286+
267287
- name: Start local server (if testing locally)
268-
if: github.event.inputs.environment == 'local'
288+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
269289
run: |
270-
npm run start &
290+
yarn build && npx serve -s build -l 3000 &
271291
npx wait-on http://localhost:3000 --timeout 120000
272292
273293
- name: Run accessibility tests
@@ -312,10 +332,14 @@ jobs:
312332
- name: Install Playwright browsers
313333
run: npx playwright install ${{ matrix.browser }} --with-deps
314334

335+
- name: Build application for local testing
336+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
337+
run: yarn build
338+
315339
- name: Start local server (if testing locally)
316-
if: github.event.inputs.environment == 'local'
340+
if: github.event.inputs.environment == 'local' || env.PLAYWRIGHT_BASE_URL == 'http://localhost:3000'
317341
run: |
318-
npm run start &
342+
yarn build && npx serve -s build -l 3000 &
319343
npx wait-on http://localhost:3000 --timeout 120000
320344
321345
- name: Run cross-browser tests

playwright-report/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,4 @@
7474
</body>
7575
</html>
7676
<script>
77-
window.playwrightReportBase64 = "data:application/zip;base64,UEsDBBQAAAgIAGBcAlsV+4JVWgIAANoGAAALAAAAcmVwb3J0Lmpzb26NVE1zmzAQ/Ss7usSeUD4MJjUZc2s7vfTQ9hYnmTUsCTUSjBB2Mrb/e4ePgJzgJLqg1e5Kj7dvd884KYxRIQv2R4OVCqX6m3JigXM19xzX8xYLd2YbLK4kqjQXLPCvfPPqq90vx2BJmlHJgptbgxUy/0eR+oX85aRUqEoW7JnKFWYssA1GTwVFiuLGqMSJmWS4eW525SYtiu4037BAyYqOBiMpc1nfzf48C4VP32o7AOsx52TJSgiS1i6XG6vc8pJo+NKMLIy3KCKKvxQkk1zy2jDLgiJTlQH8jEmoNElJwkUikdNvVFRewCOWgJkkjJ9hTSQgpihDSbEJE893A2c2XYmVWFW27axvbA7dbmFz8HwHDp3tLji0ayVOY2ZjMX2AZcEPUtBAAomKgBOWlSROQpVDYg/BdXi3c3jY7WYzrkXqj7vnH3d9HuWiVJp/IKYPcvlSCxhScYepnlrgAw055uChLWYVKppMpvqloZa7S0Wc70az7+9HMR30v7q5nQ6ea50yvRD1esvFKSMatXej1L4qrfeJ8s/frUCaaM7J8K+jZGQkHtSjRkM4Upo5t4fTKexf4/FHWTivCdw+fH+BdUYVH8CWFFcRTSY4eA0te31WF6g5LvWM8YvOMDAEW5/H3FI9LquXUVDPBQBABe+OHs9328hmXAwqaUdDZ38wBkTY9nIX3dRI79YlNP3YdKGpd9wy7LrLPOmkw6HumusGf90XejPctdi8V1jnvZ0mulLNTpUh2K3aWo3117VYT1S01KCbvTqMWgnLEBAuYW3Ut1nw5plrdnv8D1BLAQI/AxQAAAgIAGBcAlsV+4JVWgIAANoGAAALAAAAAAAAAAAAAAC0gQAAAAByZXBvcnQuanNvblBLBQYAAAAAAQABADkAAACDAgAAAAA=";</script>
77+
window.playwrightReportBase64 = "data:application/zip;base64,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";</script>

playwright.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ export default defineConfig({
107107
],
108108

109109
/* Run your local dev server before starting the tests - only for local development */
110-
webServer: process.env.PLAYWRIGHT_BASE_URL ? undefined : {
111-
command: 'serve -s build -l 3000',
110+
webServer: (process.env.PLAYWRIGHT_BASE_URL && !process.env.PLAYWRIGHT_BASE_URL.includes('localhost')) ? undefined : {
111+
command: 'yarn build && npx serve -s build -l 3000',
112112
url: 'http://localhost:3000',
113113
reuseExistingServer: !process.env.CI,
114114
timeout: parseInt(process.env.PLAYWRIGHT_SERVER_TIMEOUT || '240') * 1000, // Default 240 seconds, configurable

0 commit comments

Comments
 (0)