ci: run changed deploy tests with both builders (#100591)
### What?
Run new and changed deploy tests in PR CI for both deploy builders, and
fold the separate cache-components job into the same matrix:
- `builder`: `adapter` (`NEXT_ENABLE_ADAPTER=1`, current behavior) and
`non-adapter` (`NEXT_ENABLE_ADAPTER=0`)
- `cache-components`: `false` / `true` (replaces the separate
`test-new-tests-deploy-cache-components` job)
`test-new-tests-deploy` now runs group (5) × builder (2) × cache
components (2) = 20 entries. Per entry, the env and command are the same
as before:
- cache components off sets
`__NEXT_EXPERIMENTAL_STRICT_ROUTE_TYPES=true`
- cache components on sets `__NEXT_CACHE_COMPONENTS`,
`__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS` and the combined
`NEXT_EXTERNAL_TESTS_FILTERS`
Adapter entries keep their existing `stepName`s, so their test-report
and Datadog history continues. Non-adapter entries get a `-non-adapter`
suffix. Job names include the variant, builder and group.
### Why?
The release deploy tests run both builders, but PR CI only checked new
and changed deploy tests against the adapter. Changes that behave
differently with the non-adapter builder were only caught after release.
A recent example is a `resume-data-cache.partial-prefetching` failure
that only showed up in the non-adapter Turbopack release shards.
### How?
- Parsed the workflow and expanded the matrix to 20 entries. Each
rendered `afterBuild` script was run in an empty environment with `node`
stubbed out. Every entry exports the same env and runs the same command,
`stepName` and display name as the matching entry from the previous two
jobs. The rest of the workflow is unchanged.
- `prettier --check .github/workflows/build_and_test.yml`
<!-- NEXT_JS_LLM -->
<!-- fleet 115592cd-38e9-4ec3-904b-f1c778e1e1d9 -->
---------
Co-authored-by: vercel-fleet-prod[bot] <318278635+vercel-fleet-prod[bot]@users.noreply.github.com>
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>