From 7433995bb7a1110a51f756cebc671ff5c9d6d674 Mon Sep 17 00:00:00 2001 From: literat Date: Wed, 5 Feb 2025 12:58:18 +0100 Subject: [PATCH 1/5] Chore(ci): Migrate E2E tests to docker compose template * fixing compatibility issues with local development on Windows --- bin/make/e2e.sh | 16 ++++++++++++++-- docker/docker-compose-e2e.yml | 9 +++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 docker/docker-compose-e2e.yml diff --git a/bin/make/e2e.sh b/bin/make/e2e.sh index 391e08e8eb..609aa56225 100755 --- a/bin/make/e2e.sh +++ b/bin/make/e2e.sh @@ -1,7 +1,9 @@ -#!/bin/sh +#!/usr/bin/env bash set -o errexit +project_root=$(cd $(dirname "${BASH_SOURCE}")/../..; pwd) + if ! command -v jq &> /dev/null; then echo "jq could not be found, please install it." exit 1 @@ -35,4 +37,14 @@ while [[ $# -gt 0 ]]; do shift done -docker run --rm --network=host --ipc=host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v$PLAYWRIGHT_VERSION-$UBUNTU_VERSION $XVFB sh -c "corepack install && corepack enable && yarn test:e2e$E2E_FLAG" +if [ "$(uname)" = "MINGW64_NT" ] || [ "$(uname)" = "MINGW32_NT" ]; then + # Convert Windows path to Unix path for Docker + WORK_DIR=$(cygpath -u "$(pwd)") +else + WORK_DIR=$(pwd) +fi + +export PLAYWRIGHT_VERSION +export E2E_FLAG + +docker compose --file "${project_root}/docker/docker-compose-e2e.yml" run --rm e2e diff --git a/docker/docker-compose-e2e.yml b/docker/docker-compose-e2e.yml new file mode 100644 index 0000000000..1f0065c0f2 --- /dev/null +++ b/docker/docker-compose-e2e.yml @@ -0,0 +1,9 @@ +services: + e2e: + image: mcr.microsoft.com/playwright:v${PLAYWRIGHT_VERSION}-jammy + working_dir: /work/ + volumes: + - ${PWD}:/work/ + ipc: host + network_mode: host + entrypoint: sh -c "corepack install && corepack enable && yarn test:e2e${E2E_FLAG}" From 658b3acad79f9088b82ea845beeda86913ad2b5e Mon Sep 17 00:00:00 2001 From: literat Date: Wed, 5 Feb 2025 13:50:04 +0100 Subject: [PATCH 2/5] fixup! Chore(ci): Migrate E2E tests to docker compose template --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 28a5e75392..3c86578b87 100644 --- a/package.json +++ b/package.json @@ -34,10 +34,10 @@ "storybook": "lerna run start --scope=@lmc-eu/spirit-storybook", "test": "yarn packages:test", "test:unit": "yarn packages:test:unit", - "test:e2e": "yarn playwright test", - "test:e2e:update": "yarn playwright test --update-snapshots", - "test:e2e:report": "yarn playwright show-report", - "test:e2e:ui": "yarn playwright test --ui", + "test:e2e": "PW_EXPERIMENTAL_TS_ESM=1 yarn playwright test", + "test:e2e:update": "yarn test:e2e --update-snapshots", + "test:e2e:report": "yarn test:e2e -- show-report", + "test:e2e:ui": "yarn e2e --ui", "types": "yarn packages:types", "lint": "npm-run-all --parallel es:lint lint:markdown packages:lint", "lint:fix": "npm-run-all --parallel es:lint:fix packages:lint:fix", From e2c7c0d5d4198ac6da9f23d025bc740cbdc6b7ae Mon Sep 17 00:00:00 2001 From: literat Date: Wed, 5 Feb 2025 14:16:23 +0100 Subject: [PATCH 3/5] fixup! Chore(ci): Migrate E2E tests to docker compose template --- docker/docker-compose-e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose-e2e.yml b/docker/docker-compose-e2e.yml index 1f0065c0f2..9b3197c02c 100644 --- a/docker/docker-compose-e2e.yml +++ b/docker/docker-compose-e2e.yml @@ -6,4 +6,4 @@ services: - ${PWD}:/work/ ipc: host network_mode: host - entrypoint: sh -c "corepack install && corepack enable && yarn test:e2e${E2E_FLAG}" + entrypoint: sh -c "corepack install && corepack enable && node --experimental-modules node_modules/.bin/playwright test${E2E_FLAG}" From bb0830a33d3fcb9158b81bb31b456160552273aa Mon Sep 17 00:00:00 2001 From: literat Date: Wed, 5 Feb 2025 14:30:12 +0100 Subject: [PATCH 4/5] fixup! Chore(ci): Migrate E2E tests to docker compose template --- docker/docker-compose-e2e.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/docker-compose-e2e.yml b/docker/docker-compose-e2e.yml index 9b3197c02c..b11814677e 100644 --- a/docker/docker-compose-e2e.yml +++ b/docker/docker-compose-e2e.yml @@ -6,4 +6,6 @@ services: - ${PWD}:/work/ ipc: host network_mode: host - entrypoint: sh -c "corepack install && corepack enable && node --experimental-modules node_modules/.bin/playwright test${E2E_FLAG}" + environment: + - NODE_OPTIONS="--experimental-modules" + entrypoint: sh -c "corepack install && corepack enable && yarn test:e2e${E2E_FLAG}" From 6e3ea8cd993e067cf913b47127fbd607b96d40ab Mon Sep 17 00:00:00 2001 From: literat Date: Mon, 17 Feb 2025 21:28:43 +0100 Subject: [PATCH 5/5] fixup! Chore(ci): Migrate E2E tests to docker compose template --- .github/workflows/e2e.yml | 2 +- bin/make/e2e.sh | 1 + docker/docker-compose-e2e.yml | 10 ++++++++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a57f4d28aa..25dd839c20 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -66,7 +66,7 @@ jobs: run: echo "site_url=${{ env.NETLIFY_DEPLOYED_URL }}" >> "$GITHUB_OUTPUT" - name: Run Playwright tests - uses: docker://mcr.microsoft.com/playwright:v1.49.1-jammy + uses: docker://mcr.microsoft.com/playwright:v1.49.1-noble with: args: 'sh -c "corepack install && corepack enable && yarn test:e2e"' env: diff --git a/bin/make/e2e.sh b/bin/make/e2e.sh index 609aa56225..04e732f960 100755 --- a/bin/make/e2e.sh +++ b/bin/make/e2e.sh @@ -46,5 +46,6 @@ fi export PLAYWRIGHT_VERSION export E2E_FLAG +export XVFB docker compose --file "${project_root}/docker/docker-compose-e2e.yml" run --rm e2e diff --git a/docker/docker-compose-e2e.yml b/docker/docker-compose-e2e.yml index b11814677e..815215127b 100644 --- a/docker/docker-compose-e2e.yml +++ b/docker/docker-compose-e2e.yml @@ -1,6 +1,7 @@ services: e2e: - image: mcr.microsoft.com/playwright:v${PLAYWRIGHT_VERSION}-jammy + init: true + image: mcr.microsoft.com/playwright:v1.49.1-noble working_dir: /work/ volumes: - ${PWD}:/work/ @@ -8,4 +9,9 @@ services: network_mode: host environment: - NODE_OPTIONS="--experimental-modules" - entrypoint: sh -c "corepack install && corepack enable && yarn test:e2e${E2E_FLAG}" + command: > + bash -c "set -x && + corepack enable && corepack install && + echo 'Starting xvfb-run' && + xvfb-run --auto-servernum --server-args='-screen 0 1920x1080x24' bash -c 'echo Xvfb started && PWDEBUG=1 yarn playwright test --ui-host=0.0.0.0 --debug' && + echo 'Finished xvfb-run'" diff --git a/package.json b/package.json index 3c86578b87..e103401e17 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "test:e2e": "PW_EXPERIMENTAL_TS_ESM=1 yarn playwright test", "test:e2e:update": "yarn test:e2e --update-snapshots", "test:e2e:report": "yarn test:e2e -- show-report", - "test:e2e:ui": "yarn e2e --ui", + "test:e2e:ui": "PWDEBUG=1 yarn test:e2e --ui", "types": "yarn packages:types", "lint": "npm-run-all --parallel es:lint lint:markdown packages:lint", "lint:fix": "npm-run-all --parallel es:lint:fix packages:lint:fix",