@@ -36,89 +36,18 @@ jobs:
3636 if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
3737 echo "matrix=${{ github.event.inputs.versions }}" >> $GITHUB_OUTPUT
3838 elif [ "${{ github.event_name }}" = "schedule" ] || [ "${{ steps.check-labels.outputs.result }}" = "true" ]; then
39- echo "matrix=[\"latest\", \"canary\", \"14.2.15\", \"13.5.1\" ]" >> $GITHUB_OUTPUT
39+ echo "matrix=[\"latest\", \"canary\"]" >> $GITHUB_OUTPUT
4040 else
4141 echo "matrix=[\"latest\"]" >> $GITHUB_OUTPUT
4242 fi
4343
44- e2e :
45- needs : setup
46- runs-on : ubuntu-latest
47- strategy :
48- fail-fast : false
49- matrix :
50- version : ${{ fromJson(needs.setup.outputs.matrix) }}
51- shard : [1, 2, 3, 4, 5]
52-
53- steps :
54- - uses : actions/checkout@v4
55- - name : ' Install Node'
56- uses : actions/setup-node@v4
57- with :
58- node-version : ' 18.x'
59- cache : ' npm'
60- cache-dependency-path : ' **/package-lock.json'
61- - uses : oven-sh/setup-bun@v1
62- - name : setup pnpm/yarn
63- run : |
64- npm install -g corepack
65- corepack enable
66- shell : bash
67- - name : Install Deno
68- uses : denoland/setup-deno@v1
69- with :
70- # Should match the `DENO_VERSION_RANGE` from https://github.com/netlify/build/blob/main/packages/edge-bundler/node/bridge.ts#L20
71- deno-version : v1.44.4
72- - name : ' Install dependencies'
73- run : npm ci
74- - name : ' Prepare Netlify CLI'
75- env :
76- NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
77- run : |
78- # Control netlify-cli as a regular dev dep but expose it globally for test fixtures to use
79- npm install -g "netlify-cli@$(npm list --json --depth=0 netlify-cli | jq -r ".dependencies[\"netlify-cli\"].version")"
80- npx netlify login
81- - name : Get installed Playwright version
82- id : playwright-version
83- run : echo "version=$(npm view @playwright/test version)" >> $GITHUB_OUTPUT
84- - uses : actions/cache@v4
85- id : playwright-cache
86- with :
87- path : ' ~/.cache/ms-playwright'
88- key : ' ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}'
89- restore-keys : |
90- ${{ runner.os }}-playwright-
91- - name : Install Playwright Browsers
92- if : steps.playwright-cache.outputs.cache-hit != 'true'
93- run : npx playwright install --with-deps
94- - name : Resolve Next.js version
95- id : resolve-next-version
96- shell : bash
97- run : |
98- RESOLVED_VERSION=$(npm view next@${{ matrix.version }} version)
99- echo "version=$RESOLVED_VERSION" >> $GITHUB_OUTPUT
100- echo "Resolved Next.js version for 'next@${{ matrix.version }}' is '$RESOLVED_VERSION'"
101- - name : Run Playwright tests
102- run : npm run test:ci:e2e -- --shard=${{ matrix.shard }}/5
103- env :
104- NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
105- NEXT_VERSION : ${{ matrix.version }}
106- NEXT_RESOLVED_VERSION : ${{ steps.resolve-next-version.outputs.version }}
107- - name : Upload blob report to GitHub Actions Artifacts
108- uses : actions/upload-artifact@v4
109- if : always()
110- with :
111- name : blob-report-${{matrix.version}}-${{ matrix.shard }}
112- path : blob-report
113- retention-days : 1
114-
11544 test :
11645 needs : setup
11746 runs-on : ${{ matrix.os }}
11847 strategy :
11948 fail-fast : false
12049 matrix :
121- shard : [1, 2, 3, 4, 5, 6, 7, 8 ]
50+ shard : [6 ]
12251 os : [ubuntu-latest, windows-latest]
12352 version : ${{ fromJson(needs.setup.outputs.matrix) }}
12453 steps :
@@ -188,87 +117,3 @@ jobs:
188117 NEXT_RESOLVED_VERSION : ${{ steps.resolve-next-version.outputs.version }}
189118 TEMP : ${{ github.workspace }}/..
190119
191- smoke :
192- if : always()
193- needs : setup
194- runs-on : ubuntu-latest
195- strategy :
196- fail-fast : false
197- matrix :
198- version : ${{ fromJson(needs.setup.outputs.matrix) }}
199- steps :
200- - uses : actions/checkout@v4
201- - name : ' Install Node'
202- uses : actions/setup-node@v4
203- with :
204- node-version : ' 18.x'
205- cache : ' npm'
206- cache-dependency-path : ' **/package-lock.json'
207- - name : setup pnpm/yarn
208- run : corepack enable
209- shell : bash
210- - name : Install Deno
211- uses : denoland/setup-deno@v1
212- with :
213- # Should match the `DENO_VERSION_RANGE` from https://github.com/netlify/build/blob/main/packages/edge-bundler/node/bridge.ts#L20
214- deno-version : v1.44.4
215- - name : ' Install dependencies'
216- run : npm ci
217- - name : ' Build'
218- run : npm run build
219- - name : ' Prepare Netlify CLI'
220- env :
221- NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
222- run : |
223- # Control netlify-cli as a regular dev dep but expose it globally for test fixtures to use
224- npm install -g "netlify-cli@$(npm list --json --depth=0 netlify-cli | jq -r ".dependencies[\"netlify-cli\"].version")"
225- npx netlify login
226- - name : Resolve Next.js version
227- id : resolve-next-version
228- shell : bash
229- run : |
230- RESOLVED_VERSION=$(npm view next@${{ matrix.version }} version)
231- echo "version=$RESOLVED_VERSION" >> $GITHUB_OUTPUT
232- echo "Resolved Next.js version for 'next@${{ matrix.version }}' is '$RESOLVED_VERSION'"
233- - name : ' Smoke tests'
234- run : npm run test:ci:smoke
235- env :
236- NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
237- NEXT_VERSION : ${{ matrix.version }}
238- NEXT_RESOLVED_VERSION : ${{ steps.resolve-next-version.outputs.version }}
239-
240- merge-reports :
241- if : always()
242- needs : [setup,e2e]
243- strategy :
244- fail-fast : false
245- matrix :
246- version : ${{ fromJson(needs.setup.outputs.matrix) }}
247-
248- runs-on : ubuntu-latest
249- steps :
250- - uses : actions/checkout@v4
251- - uses : actions/setup-node@v4
252- with :
253- node-version : 18
254- - name : Install dependencies
255- run : npm ci
256-
257- - name : Download blob reports from GitHub Actions Artifacts
258- uses : actions/download-artifact@v4
259- with :
260- path : all-blob-reports
261- pattern : blob-report-${{ matrix.version }}-*
262- merge-multiple : true
263-
264- - name : Merge reports
265- run : |
266- npx playwright merge-reports --reporter html ./all-blob-reports
267- npx playwright merge-reports --reporter json ./all-blob-reports > merged_reports.json
268-
269- - name : Upload HTML report
270- uses : actions/upload-artifact@v4
271- with :
272- name : html-report-${{ matrix.version }}-attempt-${{ github.run_attempt }}
273- path : playwright-report
274- retention-days : 14
0 commit comments