7575 test :
7676 timeout-minutes : 45
7777 concurrency :
78- group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os }}-${{ matrix.node_version }}- test
78+ group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os }}-test
7979 cancel-in-progress : true
8080
8181 name : ${{ format('Tests ({0})', matrix.description) }}
@@ -85,16 +85,10 @@ jobs:
8585 include :
8686 - os : macos-latest
8787 description : macOS
88- node_version : 20.19.1
8988 - os : ubuntu-latest
9089 description : Linux
91- node_version : 20.19.1
9290 - os : windows-latest
9391 description : Windows
94- node_version : 20.19.1
95- - os : ubuntu-latest
96- description : v22, Linux
97- node_version : 22
9892
9993 runs-on : ${{ matrix.os }}
10094 steps :
10397 with :
10498 fetch-depth : 1
10599
106- - uses : dorny/paths-filter@v3
100+ - name : Filter changed paths
101+ uses : dorny/paths-filter@v3
107102 id : changes
108103 with :
109104 filters : |
@@ -118,7 +113,6 @@ jobs:
118113 turbo-team : ${{ secrets.TURBO_TEAM }}
119114 turbo-token : ${{ secrets.TURBO_TOKEN }}
120115 turbo-signature : ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }}
121- node-version : ${{ matrix.node_version }}
122116
123117 - name : Bump package versions
124118 if : steps.changes.outputs.everything_but_markdown == 'true'
@@ -139,25 +133,14 @@ jobs:
139133 # We are running the package tests first be able to get early feedback on changes.
140134 # There is no point in running the fixtures if a package is broken.
141135 if : steps.changes.outputs.everything_but_markdown == 'true'
142- run : pnpm run test:ci --log-order=stream --concurrency=1 --filter="./packages/*" --filter="!@cloudflare/kv-asset-handler"
136+ run : pnpm run test:ci --log-order=stream --concurrency=1 --filter="./packages/*"
143137 env :
144138 NODE_OPTIONS : " --max_old_space_size=8192"
145139 WRANGLER_LOG_PATH : ${{ runner.temp }}/wrangler-debug-logs/
146140 TEST_REPORT_PATH : ${{ runner.temp }}/test-report/packages/index.html
147141 CI_OS : ${{ matrix.description }}
148142 NODE_DEBUG : " @cloudflare:vite-plugin"
149143
150- - name : Run tests (kv-asset-handler only)
151- # kv-asset-handler tests don't work on Node.js 22
152- # TODO: put this back in the main packages test run when https://github.com/cloudflare/workers-sdk/pull/11348 is merged
153- if : steps.changes.outputs.everything_but_markdown == 'true' && matrix.node_version != '22'
154- run : pnpm run test:ci --log-order=stream --filter="@cloudflare/kv-asset-handler"
155- env :
156- NODE_OPTIONS : " --max_old_space_size=8192"
157- WRANGLER_LOG_PATH : ${{ runner.temp }}/wrangler-debug-logs/
158- TEST_REPORT_PATH : ${{ runner.temp }}/test-report/kv-asset-handler/index.html
159- CI_OS : ${{ matrix.description }}
160-
161144 - name : Run tests (vite-plugin playgrounds)
162145 if : steps.changes.outputs.everything_but_markdown == 'true'
163146 run : pnpm run test:ci --log-order=stream --filter="@vite-plugin-cloudflare/playground"
@@ -183,5 +166,56 @@ jobs:
183166 if : always()
184167 uses : actions/upload-artifact@v4
185168 with :
186- name : turbo-runs-${{ matrix.os }}-${{ matrix.node_version }}
169+ name : turbo-runs-${{ matrix.os }}
187170 path : .turbo/runs
171+
172+ # This job runs the main packages' tests on other supported Node.js versions to ensure compatibility.
173+ test-other-node-versions :
174+ timeout-minutes : 45
175+ runs-on : ubuntu-latest
176+ concurrency :
177+ group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.node_version }}-test-other-node-versions
178+ cancel-in-progress : true
179+ name : ${{ format('Tests ({0})', matrix.description) }}
180+ strategy :
181+ fail-fast : false
182+ matrix :
183+ include :
184+ - { node_version: 20, description: "Node 20" }
185+ - { node_version: 24, description: "Node 24" }
186+
187+ steps :
188+ - name : Checkout Repo
189+ uses : actions/checkout@v4
190+ with :
191+ fetch-depth : 1
192+
193+ - name : Filter changed paths
194+ uses : dorny/paths-filter@v3
195+ id : changes
196+ with :
197+ filters : |
198+ everything_but_markdown:
199+ - '!**/*.md'
200+
201+ - name : Install Dependencies
202+ if : steps.changes.outputs.everything_but_markdown == 'true'
203+ uses : ./.github/actions/install-dependencies
204+ with :
205+ node-version : ${{ matrix.node_version }}
206+ turbo-api : ${{ secrets.TURBO_API }}
207+ turbo-team : ${{ secrets.TURBO_TEAM }}
208+ turbo-token : ${{ secrets.TURBO_TOKEN }}
209+ turbo-signature : ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }}
210+
211+ - name : Run tests (packages)
212+ # We are running the package tests first be able to get early feedback on changes.
213+ # There is no point in running the fixtures if a package is broken.
214+ if : steps.changes.outputs.everything_but_markdown == 'true'
215+ run : pnpm run test:ci --log-order=stream --concurrency=1 --filter="./packages/*"
216+ env :
217+ NODE_OPTIONS : " --max_old_space_size=8192"
218+ WRANGLER_LOG_PATH : ${{ runner.temp }}/wrangler-debug-logs/
219+ TEST_REPORT_PATH : ${{ runner.temp }}/test-report/packages/index.html
220+ CI_OS : ${{ matrix.description }}
221+ NODE_DEBUG : " @cloudflare:vite-plugin"
0 commit comments