@@ -224,9 +224,11 @@ jobs:
224224 - 'docker/tb-cli/**'
225225
226226 - name : Define Node test matrix
227+ # Node lines the unit / legacy / acceptance suites must keep passing on.
228+ # test:unit's Nx cache is keyed on `node -v` (nx.json) so each leg runs.
227229 id : node_matrix
228230 run : |
229- echo 'matrix=["22.23.1"]' >> $GITHUB_OUTPUT
231+ echo 'matrix=["22.23.1", "24.20.0" ]' >> $GITHUB_OUTPUT
230232
231233 - name : Start Nx Cloud CI run
232234 run : pnpm nx start-ci-run
@@ -679,6 +681,7 @@ jobs:
679681 needs : [job_setup]
680682 if : needs.job_setup.outputs.is_tag == 'true' || needs.job_setup.outputs.unit_test_projects_str != ''
681683 strategy :
684+ fail-fast : false
682685 matrix :
683686 node : ${{ fromJSON(needs.job_setup.outputs.node_test_matrix) }}
684687 name : Unit tests (Node ${{ matrix.node }})
@@ -778,14 +781,20 @@ jobs:
778781 --health-interval=2s
779782 --health-timeout=5s
780783 --health-retries=60
784+ strategy :
785+ fail-fast : false
786+ matrix :
787+ node : ${{ fromJSON(needs.job_setup.outputs.node_test_matrix) }}
781788 env :
782- COVERAGE_ENABLED : ${{ needs.job_setup.outputs.coverage_enabled }}
783- name : Acceptance tests (Node ${{ needs.job_setup.outputs.node_version }}, mysql8)
789+ # Only the primary Node leg is instrumented — the others cover the same
790+ # code, and a second leg would collide on the e2e-coverage artifact name.
791+ COVERAGE_ENABLED : ${{ needs.job_setup.outputs.coverage_enabled == 'true' && matrix.node == needs.job_setup.outputs.node_version }}
792+ name : Acceptance tests (Node ${{ matrix.node }}, mysql8)
784793 steps :
785794 - uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
786795 - uses : ./.github/actions/setup-node-pnpm
787796 with :
788- node-version : ${{ needs.job_setup.outputs.node_version }}
797+ node-version : ${{ matrix.node }}
789798 trust-lockfile : ' true'
790799
791800 - name : Set timezone (non-UTC)
@@ -878,14 +887,18 @@ jobs:
878887 --health-interval=10s
879888 --health-timeout=5s
880889 --health-retries=12
881- name : Legacy tests (Node ${{ needs.job_setup.outputs.node_version }}, mysql8)
890+ strategy :
891+ fail-fast : false
892+ matrix :
893+ node : ${{ fromJSON(needs.job_setup.outputs.node_test_matrix) }}
894+ name : Legacy tests (Node ${{ matrix.node }}, mysql8)
882895 steps :
883896 - uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
884897 with :
885898 submodules : true
886899 - uses : ./.github/actions/setup-node-pnpm
887900 with :
888- node-version : ${{ needs.job_setup.outputs.node_version }}
901+ node-version : ${{ matrix.node }}
889902 trust-lockfile : ' true'
890903
891904 - name : Set env vars (MySQL)
0 commit comments