From d776bc2611692b780754120fef8fd852206f752e Mon Sep 17 00:00:00 2001 From: Eric Joanis Date: Fri, 29 May 2026 13:54:36 -0400 Subject: [PATCH 1/2] perf(ci): separate the playwright install and run steps This allows us to let the servers start while playwright browsers are downloading, which means we don't need to sleep 50s just waiting for the servers to start. --- .github/workflows/end-to-end-tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/end-to-end-tests.yml b/.github/workflows/end-to-end-tests.yml index d85418d4..9607bd12 100644 --- a/.github/workflows/end-to-end-tests.yml +++ b/.github/workflows/end-to-end-tests.yml @@ -99,18 +99,18 @@ jobs: npx nx build web-component npx nx run-many --targets=serve,serve-fr,serve-es --projects=web-component,studio-web --parallel 6 & + - name: Install Playwright browsers + run: npx playwright install --with-deps chromium + - name: Wait for the servers to be up run: | # wait for the studio web to be up - sleep 50 curl --retry 20 --retry-delay 10 --retry-all-errors http://localhost:4200 > /dev/null # Make sure the back-end API is up too curl --retry 20 --retry-delay 1 --retry-all-errors http://localhost:8000/api/v1/langs - name: Run Playwright tests for studio-web - run: | - npx playwright install --with-deps chromium - npx nx e2e studio-web + run: npx nx e2e studio-web - name: Upload HTML report uses: actions/upload-artifact@v6 From 69061bb7f5496b53a0a1565ba0fb7990acc33090 Mon Sep 17 00:00:00 2001 From: Eric Joanis Date: Fri, 29 May 2026 14:12:07 -0400 Subject: [PATCH 2/2] fix(ci): bump playwright to 1.60 to fix broken CI CI hung on installing browsers. The fix is to use playwright>=1.60, as documented at https://github.com/microsoft/playwright/issues/40998 --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 86748b8f..a529a3df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "@nx/eslint-plugin": "^22.1.2", "@nx/jest": "^22.1.2", "@nxext/stencil": "^21.0.0", - "@playwright/test": "^1.56.1", + "@playwright/test": "^1.60.0", "@stencil/angular-output-target": "^0.10.2", "@stencil/core": "^4.35.3", "@stencil/sass": "^3.2.1", @@ -19560,13 +19560,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.59.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.1.tgz", - "integrity": "sha512-PG6q63nQg5c9rIi4/Z5lR5IVF7yU5MqmKaPOe0HSc0O2cX1fPi96sUQu5j7eo4gKCkB2AnNGoWt7y4/Xx3Kcqg==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.59.1" + "playwright": "1.60.0" }, "bin": { "playwright": "cli.js" @@ -36111,13 +36111,13 @@ } }, "node_modules/playwright": { - "version": "1.59.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", - "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.59.1" + "playwright-core": "1.60.0" }, "bin": { "playwright": "cli.js" @@ -36130,9 +36130,9 @@ } }, "node_modules/playwright-core": { - "version": "1.59.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", - "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index db5b3219..8b7aa83e 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@nx/eslint-plugin": "^22.1.2", "@nx/jest": "^22.1.2", "@nxext/stencil": "^21.0.0", - "@playwright/test": "^1.56.1", + "@playwright/test": "^1.60.0", "@stencil/angular-output-target": "^0.10.2", "@stencil/core": "^4.35.3", "@stencil/sass": "^3.2.1",