@@ -18,10 +18,11 @@ jobs:
1818 strategy :
1919 matrix :
2020 os : [ubuntu-latest, macOS-latest, windows-latest]
21- # Pinning 20.x version as a temporary workaround due to this https://github.com/nodejs/node/issues/52884
22- node-version : ['18.17.0', '20.12.2 ', '22']
21+ # TODO(serhalp): Document why we test against 18.17.0 here (18.14.0 is our minimum supported version)
22+ node-version : ['18.17.0', '20', '22', '24 ']
2323 shard : ['1/4', '2/4', '3/4', '4/4']
2424
25+ # TODO(serhalp): Why are these excluded? Document, fix, or remove.
2526 exclude :
2627 - os : macOS-latest
2728 node-version : ' 18.17.0'
@@ -113,87 +114,3 @@ jobs:
113114 with :
114115 flags : ${{ steps.test-coverage-flags.outputs.os }},${{ steps.test-coverage-flags.outputs.node }}
115116 token : ${{ secrets.CODECOV_TOKEN }}
116- # Specific tests for known test that failed on windows using node 23.
117- # Can be replaced with larger node 23 tests in the future.
118- integration-win-node-23 :
119- name : Integration test windows latest node23 specific
120- runs-on : windows-latest
121- timeout-minutes : 40
122- steps :
123- # This improves Windows network performance, we need this since we open many ports in our tests
124- - name : Increase Windows port limit and reduce time wait delay
125- run : |
126- netsh int ipv4 set dynamicport tcp start=1025 num=64511
127- REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters /v TcpTimedWaitDelay /t REG_DWORD /d 30 /f
128-
129- - name : Git checkout
130- uses : actions/checkout@v4
131- with :
132- fetch-depth : 0
133-
134- - name : Use Node.js
135- uses : actions/setup-node@v4
136- with :
137- node-version : ' 23.x'
138- cache : npm
139- check-latest : true
140-
141- - name : Install PNPM
142- run : |
143- corepack enable
144- corepack prepare [email protected] --activate 145-
146- - name : Setup Deno
147- uses : denoland/setup-deno@v1
148- with :
149- deno-version : v1.44.4
150-
151- - name : Install core dependencies
152- run : npm ci --no-audit
153-
154- - name : Build project
155- run : npm run build
156- if : ' ${{!steps.release-check.outputs.IS_RELEASE}}'
157-
158- - name : Prepare tests
159- run : npm run test:init
160-
161- - name : Tests
162- run : npm exec vitest -- run tests/integration/commands/dev/dev.test.ts --coverage
163- env :
164- # GitHub secrets are not available when running on PR from forks
165- # We set a flag so we can skip tests that access Netlify API
166- NETLIFY_TEST_DISABLE_LIVE :
167- ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true }}
168- NETLIFY_AUTH_TOKEN : ${{ secrets.NETLIFY_AUTH_TOKEN }}
169- # NETLIFY_TEST_GITHUB_TOKEN is used to avoid reaching GitHub API limits in exec-fetcher.js
170- NETLIFY_TEST_GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
171- # Changes the polling interval used by the file watcher
172- CHOKIDAR_INTERVAL : 20
173- CHOKIDAR_USEPOLLING : 1
174-
175- - name : Get test coverage flags
176- id : test-coverage-flags
177- # For windows we have to use $env:
178- run : |-
179- os=windows-latest
180- node=$(node --version)
181- echo "os=${os/-latest/}" >> $GITHUB_OUTPUT
182- echo "os=${os/-latest/}" >> $env:GITHUB_OUTPUT
183- echo "node=node_${node/.*.*/}" >> $GITHUB_OUTPUT
184- echo "node=node_${node/.*.*/}" >> $env:GITHUB_OUTPUT
185- shell : bash
186-
187- - name : Store npm error artefacts
188- uses : actions/upload-artifact@v4
189- if : always()
190- with :
191- name : npm-logs--windows-latest--23x
192- path : |
193- ~/.npm/_logs/**/*
194-
195- - uses : codecov/codecov-action@v5
196- continue-on-error : true
197- with :
198- flags : ${{ steps.test-coverage-flags.outputs.os }},${{ steps.test-coverage-flags.outputs.node }}
199- token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments