Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions .github/workflows/test-e2e-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: test-e2e-deploy

on:
workflow_dispatch:
inputs:
nextjsRef:
description: 'Next.js repo ref (branch/tag/SHA)'
default: 'canary'
type: string
# schedule:
# - cron: '0 2 * * *'

jobs:
build:
name: Build Next.js + adapter
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
path: adapter

- uses: actions/checkout@v4
with:
repository: vercel/next.js
ref: ${{ inputs.nextjsRef || 'canary' }}
path: nextjs
fetch-depth: 25

- uses: actions/setup-node@v4
with: { node-version: '20' }

- name: Setup pnpm
run: npm i -g corepack@0.31 && corepack enable

- name: Install & build Next.js
working-directory: nextjs
run: pnpm install && pnpm build && pnpm install

- name: Install Playwright
working-directory: nextjs
run: pnpm playwright install --with-deps chromium

- name: Build adapter
working-directory: adapter
run: pnpm install && pnpm build

- uses: actions/cache/save@v4
with:
path: |
nextjs
adapter
~/.cache/ms-playwright
key: build-${{ github.sha }}-${{ github.run_id }}

test:
name: Tests (${{ matrix.group }})
needs: build
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
group:
[
1/16,
2/16,
3/16,
4/16,
5/16,
6/16,
7/16,
8/16,
9/16,
10/16,
11/16,
12/16,
13/16,
14/16,
15/16,
16/16,
]
steps:
- uses: actions/cache/restore@v4
with:
path: |
nextjs
adapter
~/.cache/ms-playwright
key: build-${{ github.sha }}-${{ github.run_id }}

- uses: actions/setup-node@v4
with: { node-version: '20' }

- name: Setup pnpm
run: npm i -g corepack@0.31 && corepack enable

- name: Ensure Playwright browser
working-directory: nextjs
run: pnpm playwright install chromium

- name: Make scripts executable
run: chmod +x adapter/scripts/e2e-deploy.sh
adapter/scripts/e2e-logs.sh
adapter/scripts/e2e-cleanup.sh

- name: Run deploy tests
working-directory: nextjs
env:
NEXT_TEST_MODE: deploy
NEXT_E2E_TEST_TIMEOUT: 240000
NEXT_EXTERNAL_TESTS_FILTERS: test/deploy-tests-manifest.json
ADAPTER_DIR: ${{ github.workspace }}/adapter
IS_TURBOPACK_TEST: 1
NEXT_TEST_JOB: 1
NEXT_TELEMETRY_DISABLED: 1

# Change these to your adapter's scripts
# Keep as-is if the scripts are in the adapter repository `scripts` directory
NEXT_TEST_DEPLOY_SCRIPT_PATH: ${{ github.workspace }}/adapter/scripts/e2e-deploy.sh
NEXT_TEST_DEPLOY_LOGS_SCRIPT_PATH: ${{ github.workspace }}/adapter/scripts/e2e-logs.sh
NEXT_TEST_CLEANUP_SCRIPT_PATH: ${{ github.workspace }}/adapter/scripts/e2e-cleanup.sh
run: node run-tests.js --timings -g ${{ matrix.group }} -c 2 --type e2e