diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 487f826e..e6735bbc 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -6,9 +6,34 @@ on: pull_request: jobs: + get-e2e-packages: + runs-on: ubuntu-latest + outputs: + packages: ${{ steps.get-e2e-packages.outputs.packages }} + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Install Dependencies + uses: ./.github/actions/install-dependencies + + - name: Get packages + run: | + set -x + + { + echo "packages='[\"$(pnpm m ls --depth -1 | grep -e 'examples/' | tr ' ' '\n' | grep -o '.*@\d' | rev | cut -c3- | rev | sed -e 's/\\(.*\\)/\"\\1\"/' | paste -sd, - | sed 's/,/","/g')\"]'" + } >> "$GITHUB_OUTPUT" + test: timeout-minutes: 30 runs-on: ubuntu-latest + needs: get-e2e-packages + strategy: + fail-fast: true + matrix: + package: ${{ fromJson(needs.get-e2e-packages.outputs.packages) }} + name: ${{ matrix.package }} E2Es steps: - name: Check out code uses: actions/checkout@v4 @@ -23,13 +48,13 @@ jobs: run: pnpm build - name: Build all workers - run: pnpm -r build:worker + run: pnpm --filter ${{ matrix.package }} build:worker - name: Run playwright tests - run: pnpm e2e + run: pnpm --filter ${{ matrix.package }} e2e - name: Run playwright dev tests - run: pnpm e2e:dev + run: pnpm --filter ${{ matrix.package }} e2e:dev - uses: actions/upload-artifact@v4 if: always() diff --git a/examples/e2e/shared/package.json b/examples/e2e/shared/package.json index 7ddd96bf..4d3dc50b 100644 --- a/examples/e2e/shared/package.json +++ b/examples/e2e/shared/package.json @@ -1,6 +1,5 @@ { "name": "@example/shared", - "version": "0.0.0", "private": true, "scripts": { "clean": "rm -rf .turbo && rm -rf node_modules" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index f712c4dc..dc12ef3b 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -1,5 +1,6 @@ { "name": "middleware", + "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", diff --git a/examples/next-partial-prerendering/package.json b/examples/next-partial-prerendering/package.json index 1da41fa4..bff60485 100644 --- a/examples/next-partial-prerendering/package.json +++ b/examples/next-partial-prerendering/package.json @@ -1,5 +1,6 @@ { "private": true, + "version": "0.1.0", "name": "next-partial-prerendering", "scripts": { "build": "next build", diff --git a/examples/vercel-blog-starter/package.json b/examples/vercel-blog-starter/package.json index 5cf746e3..64110241 100644 --- a/examples/vercel-blog-starter/package.json +++ b/examples/vercel-blog-starter/package.json @@ -1,5 +1,6 @@ { "name": "vercel-blog-starter", + "version": "0.1.0", "private": true, "scripts": { "dev": "next", diff --git a/examples/vercel-commerce/package.json b/examples/vercel-commerce/package.json index 6341cb5d..6fff02a6 100644 --- a/examples/vercel-commerce/package.json +++ b/examples/vercel-commerce/package.json @@ -1,5 +1,6 @@ { "name": "vercel-commerce", + "version": "0.1.0", "private": true, "engines": { "node": ">=20",