1
- name : ' Run tests'
1
+ name : " Run tests"
2
2
on :
3
3
pull_request :
4
4
branches : [main]
5
5
schedule :
6
- - cron : ' 0 6 * * *' # Run every day at 6am UTC
6
+ - cron : " 0 6 * * *" # Run every day at 6am UTC
7
7
workflow_dispatch :
8
8
inputs :
9
9
versions :
10
- description : ' The versions of Next.js to test against (quoted and comma separated)'
10
+ description : " The versions of Next.js to test against (quoted and comma separated)"
11
11
required : false
12
- default : ' latest'
12
+ default : " latest"
13
13
14
14
jobs :
15
15
setup :
@@ -65,12 +65,12 @@ jobs:
65
65
fi
66
66
echo "version=$NODE_VERSION" >> $GITHUB_OUTPUT
67
67
echo "Node version for 'next@${{ matrix.version }}' is '$NODE_VERSION'"
68
- - name : ' Install Node'
68
+ - name : " Install Node"
69
69
uses : actions/setup-node@v5
70
70
with :
71
71
node-version : ${{ steps.decide-node-version.outputs.version }}
72
- cache : ' npm'
73
- cache-dependency-path : ' **/package-lock.json'
72
+ cache : " npm"
73
+ cache-dependency-path : " **/package-lock.json"
74
74
- uses : oven-sh/setup-bun@v2
75
75
- name : setup pnpm/yarn
76
76
run : |
82
82
with :
83
83
# Should match the `DENO_VERSION_RANGE` from https://github.com/netlify/build/blob/main/packages/edge-bundler/node/bridge.ts#L20
84
84
deno-version : v2.2.4
85
- - name : ' Install dependencies'
85
+ - name : " Install dependencies"
86
86
run : npm ci
87
- - name : ' Prepare Netlify CLI'
87
+ - name : " Prepare Netlify CLI"
88
88
env :
89
89
NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
90
90
run : |
97
97
- uses : actions/cache@v4
98
98
id : playwright-cache
99
99
with :
100
- path : ' ~/.cache/ms-playwright'
101
- key : ' ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}'
100
+ path : " ~/.cache/ms-playwright"
101
+ key : " ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}"
102
102
restore-keys : |
103
103
${{ runner.os }}-playwright-
104
104
- name : Install Playwright Browsers
@@ -124,6 +124,13 @@ jobs:
124
124
name : blob-report-${{matrix.version}}-${{ matrix.shard }}
125
125
path : blob-report
126
126
retention-days : 1
127
+ - name : Upload debug artifacts
128
+ uses : actions/upload-artifact@v4
129
+ if : always()
130
+ with :
131
+ name : debug-artifacts-${{matrix.version}}-${{ matrix.shard }}
132
+ path : debug-artifacts
133
+ retention-days : 1
127
134
128
135
test :
129
136
needs : setup
@@ -135,9 +142,9 @@ jobs:
135
142
version : ${{ fromJson(needs.setup.outputs.matrix) }}
136
143
exclude :
137
144
- os : windows-2025
138
- version : ' 13.5.1'
145
+ version : " 13.5.1"
139
146
- os : windows-2025
140
- version : ' 14.2.15'
147
+ version : " 14.2.15"
141
148
runs-on : ${{ matrix.os }}
142
149
steps :
143
150
- uses : actions/checkout@v5
@@ -154,12 +161,12 @@ jobs:
154
161
fi
155
162
echo "version=$NODE_VERSION" >> $GITHUB_OUTPUT
156
163
echo "Node version for 'next@${{ matrix.version }}' is '$NODE_VERSION'"
157
- - name : ' Install Node'
164
+ - name : " Install Node"
158
165
uses : actions/setup-node@v5
159
166
with :
160
167
node-version : ${{ steps.decide-node-version.outputs.version }}
161
- cache : ' npm'
162
- cache-dependency-path : ' **/package-lock.json'
168
+ cache : " npm"
169
+ cache-dependency-path : " **/package-lock.json"
163
170
- name : Prefer npm global on windows
164
171
if : runner.os == 'Windows'
165
172
# On Windows by default PATH prefers corepack bundled with Node.js
@@ -178,11 +185,11 @@ jobs:
178
185
with :
179
186
# Should match the `DENO_VERSION_RANGE` from https://github.com/netlify/edge-bundler/blob/e55f825bd985d3c92e21d1b765d71e70d5628fba/node/bridge.ts#L17
180
187
deno-version : v2.2.4
181
- - name : ' Install dependencies'
188
+ - name : " Install dependencies"
182
189
run : npm ci
183
- - name : ' Build'
190
+ - name : " Build"
184
191
run : npm run build
185
- - name : ' Vendor deno helpers for integration tests'
192
+ - name : " Vendor deno helpers for integration tests"
186
193
run : node tools/vendor-deno-tools.js
187
194
- name : Resolve Next.js version
188
195
id : resolve-next-version
@@ -207,13 +214,13 @@ jobs:
207
214
key :
208
215
integration-fixtures-${{ runner.os }}-${{steps.resolve-next-version.outputs.version}}-${{
209
216
steps.fixture-cache-key.outputs.key }}
210
- - name : ' Prepare Fixtures'
217
+ - name : " Prepare Fixtures"
211
218
if : steps.cache-fixtures.outputs.cache-hit != 'true'
212
219
run : npm run pretest
213
220
env :
214
221
NEXT_VERSION : ${{ matrix.version }}
215
222
NEXT_RESOLVED_VERSION : ${{ steps.resolve-next-version.outputs.version }}
216
- - name : ' Unit and integration tests'
223
+ - name : " Unit and integration tests"
217
224
run : npm run test:ci:unit-and-integration -- --shard=${{ matrix.shard }}/8
218
225
env :
219
226
NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
@@ -244,12 +251,12 @@ jobs:
244
251
fi
245
252
echo "version=$NODE_VERSION" >> $GITHUB_OUTPUT
246
253
echo "Node version for 'next@${{ matrix.version }}' is '$NODE_VERSION'"
247
- - name : ' Install Node'
254
+ - name : " Install Node"
248
255
uses : actions/setup-node@v5
249
256
with :
250
257
node-version : ${{ steps.decide-node-version.outputs.version }}
251
- cache : ' npm'
252
- cache-dependency-path : ' **/package-lock.json'
258
+ cache : " npm"
259
+ cache-dependency-path : " **/package-lock.json"
253
260
- name : setup pnpm/yarn
254
261
run : corepack enable
255
262
shell : bash
@@ -258,11 +265,11 @@ jobs:
258
265
with :
259
266
# Should match the `DENO_VERSION_RANGE` from https://github.com/netlify/build/blob/main/packages/edge-bundler/node/bridge.ts#L20
260
267
deno-version : v2.2.4
261
- - name : ' Install dependencies'
268
+ - name : " Install dependencies"
262
269
run : npm ci
263
- - name : ' Build'
270
+ - name : " Build"
264
271
run : npm run build
265
- - name : ' Prepare Netlify CLI'
272
+ - name : " Prepare Netlify CLI"
266
273
env :
267
274
NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
268
275
run : |
@@ -276,7 +283,7 @@ jobs:
276
283
RESOLVED_VERSION=$(npm view next@${{ matrix.version }} version)
277
284
echo "version=$RESOLVED_VERSION" >> $GITHUB_OUTPUT
278
285
echo "Resolved Next.js version for 'next@${{ matrix.version }}' is '$RESOLVED_VERSION'"
279
- - name : ' Smoke tests'
286
+ - name : " Smoke tests"
280
287
run : npm run test:ci:smoke
281
288
env :
282
289
NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
@@ -285,36 +292,36 @@ jobs:
285
292
286
293
merge-reports :
287
294
if : always()
288
- needs : [setup,e2e]
295
+ needs : [setup, e2e]
289
296
strategy :
290
297
fail-fast : false
291
298
matrix :
292
299
version : ${{ fromJson(needs.setup.outputs.matrix) }}
293
300
294
301
runs-on : ubuntu-latest
295
302
steps :
296
- - uses : actions/checkout@v5
297
- - uses : actions/setup-node@v5
298
- with :
299
- node-version : 18
300
- - name : Install dependencies
301
- run : npm ci
303
+ - uses : actions/checkout@v5
304
+ - uses : actions/setup-node@v5
305
+ with :
306
+ node-version : 18
307
+ - name : Install dependencies
308
+ run : npm ci
302
309
303
- - name : Download blob reports from GitHub Actions Artifacts
304
- uses : actions/download-artifact@v5
305
- with :
306
- path : all-blob-reports
307
- pattern : blob-report-${{ matrix.version }}-*
308
- merge-multiple : true
310
+ - name : Download blob reports from GitHub Actions Artifacts
311
+ uses : actions/download-artifact@v5
312
+ with :
313
+ path : all-blob-reports
314
+ pattern : blob-report-${{ matrix.version }}-*
315
+ merge-multiple : true
309
316
310
- - name : Merge reports
311
- run : |
312
- npx playwright merge-reports --reporter html ./all-blob-reports
313
- npx playwright merge-reports --reporter json ./all-blob-reports > merged_reports.json
317
+ - name : Merge reports
318
+ run : |
319
+ npx playwright merge-reports --reporter html ./all-blob-reports
320
+ npx playwright merge-reports --reporter json ./all-blob-reports > merged_reports.json
314
321
315
- - name : Upload HTML report
316
- uses : actions/upload-artifact@v4
317
- with :
318
- name : html-report-${{ matrix.version }}-attempt-${{ github.run_attempt }}
319
- path : playwright-report
320
- retention-days : 14
322
+ - name : Upload HTML report
323
+ uses : actions/upload-artifact@v4
324
+ with :
325
+ name : html-report-${{ matrix.version }}-attempt-${{ github.run_attempt }}
326
+ path : playwright-report
327
+ retention-days : 14
0 commit comments