From 887d4daadf3f91ca74b4431e66f845a72e1ef3f0 Mon Sep 17 00:00:00 2001 From: Ryan Bahan Date: Fri, 27 Feb 2026 12:38:14 -0700 Subject: [PATCH 1/3] Add e2e tests to PR CI workflow Runs e2e tests as part of the PR workflow with isolated secrets (E2E_CLIENT_ID, E2E_ACCOUNT_EMAIL, E2E_ACCOUNT_PASSWORD, E2E_STORE_FQDN, E2E_SECONDARY_CLIENT_ID). Includes build step, Chromium install, node-pty rebuild, and Playwright artifact uploads on failure. --- .github/workflows/tests-pr.yml | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/.github/workflows/tests-pr.yml b/.github/workflows/tests-pr.yml index 7ac2b783bb7..d93800601c0 100644 --- a/.github/workflows/tests-pr.yml +++ b/.github/workflows/tests-pr.yml @@ -220,6 +220,52 @@ jobs: with: base-branch-name: '${{ github.base_ref }}' + e2e-tests: + name: 'E2E tests' + if: github.event.pull_request.head.repo.full_name == github.repository + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v3 + with: + repository: ${{ github.event.pull_request.head.repo.full_name || github.event.repository.full_name }} + ref: ${{ github.event.pull_request.head.ref || github.event.merge_group.head_ref }} + fetch-depth: 1 + - name: Setup deps + uses: ./.github/actions/setup-cli-deps + with: + node-version: ${{ env.DEFAULT_NODE_VERSION }} + - name: Build + run: pnpm nx run-many --all --skip-nx-cache --target=build --output-style=stream + - name: Install Playwright Chromium + run: npx playwright install chromium + working-directory: packages/e2e + - name: Rebuild node-pty + run: pnpm rebuild node-pty + - name: Run E2E tests + working-directory: packages/e2e + env: + SHOPIFY_FLAG_CLIENT_ID: ${{ secrets.E2E_CLIENT_ID }} + E2E_ACCOUNT_EMAIL: ${{ secrets.E2E_ACCOUNT_EMAIL }} + E2E_ACCOUNT_PASSWORD: ${{ secrets.E2E_ACCOUNT_PASSWORD }} + E2E_STORE_FQDN: ${{ secrets.E2E_STORE_FQDN }} + E2E_SECONDARY_CLIENT_ID: ${{ secrets.E2E_SECONDARY_CLIENT_ID }} + run: npx playwright test + - name: Upload Playwright report + uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: playwright-report + path: packages/e2e/playwright-report/ + retention-days: 14 + - name: Upload test results + uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: playwright-results + path: packages/e2e/test-results/ + retention-days: 14 + type-diff: if: github.event.pull_request.head.repo.full_name == github.repository name: 'Type-diff' From 1584fb46833ffee772fdd7855f1a28588adfc6ec Mon Sep 17 00:00:00 2001 From: Ryan Bahan Date: Thu, 5 Mar 2026 10:08:33 -0700 Subject: [PATCH 2/3] dont block merge on e2e fail --- .github/workflows/tests-pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests-pr.yml b/.github/workflows/tests-pr.yml index d93800601c0..0238a2cd480 100644 --- a/.github/workflows/tests-pr.yml +++ b/.github/workflows/tests-pr.yml @@ -225,6 +225,7 @@ jobs: if: github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-latest timeout-minutes: 15 + continue-on-error: true steps: - uses: actions/checkout@v3 with: From 07ba445c0f76e24ae1cbfd0a2f395f0bbdbc27ab Mon Sep 17 00:00:00 2001 From: Ryan Bahan Date: Thu, 5 Mar 2026 11:39:42 -0700 Subject: [PATCH 3/3] Fix knip: ignore playwright binary, remove stale ignoreDependencies entry Co-Authored-By: Claude Opus 4.6 (1M context) --- package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 577686594af..cf08cb858fa 100644 --- a/package.json +++ b/package.json @@ -125,10 +125,12 @@ "unlisted": "error", "unresolved": "error" }, + "ignoreBinaries": [ + "playwright" + ], "ignoreDependencies": [ "@shopify/theme-check-node", - "@shopify/theme-check-docs-updater", - "@graphql-typed-document-node/core" + "@shopify/theme-check-docs-updater" ], "ignoreWorkspaces": [ "packages/eslint-plugin-cli",