-
Notifications
You must be signed in to change notification settings - Fork 1
131 lines (114 loc) · 3.49 KB
/
Copy pathtest-e2e-deploy.yml
File metadata and controls
131 lines (114 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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-8-core
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
path: adapter-bun
- uses: actions/checkout@v4
with:
repository: vercel/next.js
ref: ${{ inputs.nextjsRef || 'canary' }}
path: next.js
fetch-depth: 25
- uses: actions/setup-node@v4
with: { node-version: "20" }
- uses: oven-sh/setup-bun@v2
with: { bun-version: "latest" }
- name: Setup pnpm
run: npm i -g corepack@0.31 && corepack enable
- name: Install & build Next.js
working-directory: next.js
run: pnpm install && pnpm build && pnpm install
- name: Install Playwright
working-directory: next.js
run: pnpm playwright install --with-deps chromium
- name: Build adapter-bun
working-directory: adapter-bun
run: bun install && bun run build
- uses: actions/cache/save@v4
with:
path: |
next.js
adapter-bun
~/.cache/ms-playwright
key: build-${{ github.sha }}-${{ github.run_id }}
test:
name: Tests (${{ matrix.group }})
needs: build
runs-on: ubuntu-latest-8-core
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: |
next.js
adapter-bun
~/.cache/ms-playwright
key: build-${{ github.sha }}-${{ github.run_id }}
- uses: actions/setup-node@v4
with: { node-version: "20" }
- uses: oven-sh/setup-bun@v2
with: { bun-version: "latest" }
- name: Setup pnpm
run: npm i -g corepack@0.31 && corepack enable
- name: Ensure Playwright browser
working-directory: next.js
run: pnpm playwright install chromium
- name: Make scripts executable
run:
chmod +x adapter-bun/scripts/e2e-deploy.sh
adapter-bun/scripts/e2e-logs.sh
adapter-bun/scripts/e2e-cleanup.sh
- name: Run deploy tests
working-directory: next.js
env:
NEXT_TEST_MODE: deploy
NEXT_E2E_TEST_TIMEOUT: 240000
NEXT_EXTERNAL_TESTS_FILTERS:
test/deploy-tests-manifest.json,${{ github.workspace }}/adapter-bun/test/deploy-tests-manifest.adapter-bun.json
NEXT_TEST_DEPLOY_SCRIPT_PATH:
${{ github.workspace }}/adapter-bun/scripts/e2e-deploy.sh
NEXT_TEST_DEPLOY_LOGS_SCRIPT_PATH:
${{ github.workspace }}/adapter-bun/scripts/e2e-logs.sh
NEXT_TEST_CLEANUP_SCRIPT_PATH:
${{ github.workspace }}/adapter-bun/scripts/e2e-cleanup.sh
ADAPTER_BUN_DIR: ${{ github.workspace }}/adapter-bun
IS_TURBOPACK_TEST: 1
NEXT_TEST_JOB: 1
NEXT_TELEMETRY_DISABLED: 1
run: node run-tests.js --timings -g ${{ matrix.group }} -c 2 --type e2e